diff --git a/src/sugar/graphics/window.py b/src/sugar/graphics/window.py
index e82b3b9..809d55f 100644
a
|
b
|
import gtk |
24 | 24 | |
25 | 25 | from sugar.graphics.icon import Icon |
26 | 26 | |
| 27 | UNFULLSCREEN_BUTTON_VISIBILITY_TIMEOUT = 2 |
| 28 | |
27 | 29 | class UnfullscreenButton(gtk.Window): |
28 | 30 | |
29 | 31 | def __init__(self): |
… |
… |
class Window(gtk.Window): |
82 | 84 | self.connect('realize', self.__window_realize_cb) |
83 | 85 | self.connect('window-state-event', self.__window_state_event_cb) |
84 | 86 | self.connect('key-press-event', self.__key_press_cb) |
85 | | |
| 87 | |
86 | 88 | self.toolbox = None |
87 | 89 | self._alerts = [] |
88 | 90 | self.canvas = None |
… |
… |
class Window(gtk.Window): |
96 | 98 | self._event_box = gtk.EventBox() |
97 | 99 | self._hbox.pack_start(self._event_box) |
98 | 100 | self._event_box.show() |
99 | | |
| 101 | events = self._event_box.get_events() |
| 102 | self._event_box.set_events(events | gtk.gdk.POINTER_MOTION_MASK | \ |
| 103 | gtk.gdk.POINTER_MOTION_HINT_MASK) |
| 104 | self._event_box.connect('motion-notify-event', self.__motion_notify_cb) |
| 105 | |
100 | 106 | self.add(self._vbox) |
101 | 107 | self._vbox.show() |
102 | 108 | |
… |
… |
class Window(gtk.Window): |
105 | 111 | self._unfullscreen_button.set_transient_for(self) |
106 | 112 | self._unfullscreen_button.connect_button_press( |
107 | 113 | self.__unfullscreen_button_pressed) |
| 114 | self._unfullscreen_button_timeout_id = None |
108 | 115 | |
109 | 116 | def set_canvas(self, canvas): |
110 | 117 | if self.canvas: |
… |
… |
class Window(gtk.Window): |
179 | 186 | if self.props.enable_fullscreen_mode: |
180 | 187 | self._unfullscreen_button.show() |
181 | 188 | |
| 189 | if self._unfullscreen_button_timeout_id: |
| 190 | gobject.source_remove(self._unfullscreen_button_timeout_id) |
| 191 | self._unfullscreen_button_timeout_id = None |
| 192 | |
| 193 | gobject.timeout_add_seconds(UNFULLSCREEN_BUTTON_VISIBILITY_TIMEOUT, \ |
| 194 | self._unfullscreen_button_timeout_cb) |
| 195 | |
182 | 196 | else: |
183 | 197 | if self.toolbox is not None: |
184 | 198 | self.toolbox.show() |
… |
… |
class Window(gtk.Window): |
189 | 203 | if self.props.enable_fullscreen_mode: |
190 | 204 | self._unfullscreen_button.hide() |
191 | 205 | |
| 206 | if self._unfullscreen_button_timeout_id: |
| 207 | gobject.source_remove(self._unfullscreen_button_timeout_id) |
| 208 | self._unfullscreen_button_timeout_id = None |
| 209 | |
192 | 210 | def __key_press_cb(self, widget, event): |
193 | 211 | key = gtk.gdk.keyval_name(event.keyval) |
194 | 212 | if event.state & gtk.gdk.MOD1_MASK: |
… |
… |
class Window(gtk.Window): |
204 | 222 | def __unfullscreen_button_pressed(self, widget, event): |
205 | 223 | self.unfullscreen() |
206 | 224 | |
| 225 | def __motion_notify_cb(self, widget, event): |
| 226 | if self._is_fullscreen and self.props.enable_fullscreen_mode: |
| 227 | if not self._unfullscreen_button.props.visible: |
| 228 | self._unfullscreen_button.show() |
| 229 | else: |
| 230 | # Reset the timer |
| 231 | if self._unfullscreen_button_timeout_id: |
| 232 | gobject.source_remove(self._unfullscreen_button_timeout_id) |
| 233 | self._unfullscreen_button_timeout_id = None |
| 234 | |
| 235 | gobject.timeout_add_seconds(UNFULLSCREEN_BUTTON_VISIBILITY_TIMEOUT, \ |
| 236 | self._unfullscreen_button_timeout_cb) |
| 237 | return True |
| 238 | |
| 239 | def _unfullscreen_button_timeout_cb(self): |
| 240 | self._unfullscreen_button.hide() |
| 241 | return False |
| 242 | |
207 | 243 | def set_enable_fullscreen_mode(self, enable_fullscreen_mode): |
208 | 244 | self._enable_fullscreen_mode = enable_fullscreen_mode |
209 | 245 | |
… |
… |
class Window(gtk.Window): |
214 | 250 | setter=set_enable_fullscreen_mode, |
215 | 251 | getter=get_enable_fullscreen_mode) |
216 | 252 | |
| 253 | |