[Sugar-devel] [PATCH sugar] Launcher: set the standard SPLASHSCREEN hint instead of our own _SUGAR_WINDOW_TYPE hint
Manuel Quiñones
manuq at laptop.org
Thu Aug 23 16:19:57 EDT 2012
Yes, the launch window works with this standard SPLASHSCREEN. Great work.
2012/8/23 Simon Schampijer <simon at schampijer.de>:
> From: Simon Schampijer <simon at laptop.org>
>
> Currently we have issues with introspecting gdk_property_get and we already
> have a wrapper around gdk_property_change [1]. We discussed reimplementing
> the toolkit wm module in C, and provide the following functions:
>
> get_activity_id
> get_bundle_id
> set_activity_id
> set_bundle_id
>
> To prepare for this move we want to remove our own _SUGAR_WINDOW_TYPE
> hint and replace it with the standard SPLASHSCREEN one [2][3], which is
> done in this patch.
>
> [1] http://wiki.sugarlabs.org/go/Features/GTK3/Shell#gdk_property_change
> [2] http://www.pygtk.org/docs/pygtk/gdk-constants.html#gdk-window-type-hint-constants
> [3] http://standards.freedesktop.org/wm-spec/wm-spec-1.3.html
>
> Signed-off-by: Simon Schampijer <simon at laptop.org>
Acked-by: Manuel Quiñones <manuq at laptop.org>
> ---
> src/jarabe/model/shell.py | 8 +++++---
> src/jarabe/view/launcher.py | 4 +---
> 2 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/src/jarabe/model/shell.py b/src/jarabe/model/shell.py
> index 31605f7..1f3ee8d 100644
> --- a/src/jarabe/model/shell.py
> +++ b/src/jarabe/model/shell.py
> @@ -521,7 +521,8 @@ class ShellModel(gobject.GObject):
> them.
>
> """
> - if window.get_window_type() == wnck.WINDOW_NORMAL:
> + if window.get_window_type() == wnck.WINDOW_NORMAL or \
> + window.get_window_type() == wnck.WINDOW_SPLASHSCREEN:
> home_activity = None
>
> activity_id = wm.get_activity_id(window)
> @@ -552,7 +553,7 @@ class ShellModel(gobject.GObject):
> logging.debug('window registered for %s', activity_id)
> home_activity.add_window(window)
>
> - if wm.get_sugar_window_type(window) != 'launcher' \
> + if window.get_window_type() != wnck.WINDOW_SPLASHSCREEN \
> and home_activity.get_launch_status() == Activity.LAUNCHING:
> self.emit('launch-completed', home_activity)
> startup_time = time.time() - home_activity.get_launch_time()
> @@ -563,7 +564,8 @@ class ShellModel(gobject.GObject):
> self._set_active_activity(home_activity)
>
> def _window_closed_cb(self, screen, window):
> - if window.get_window_type() == wnck.WINDOW_NORMAL:
> + if window.get_window_type() == wnck.WINDOW_NORMAL or \
> + window.get_window_type() == wnck.WINDOW_SPLASHSCREEN:
> xid = window.get_xid()
> activity = self._get_activity_by_xid(xid)
> if activity is not None:
> diff --git a/src/jarabe/view/launcher.py b/src/jarabe/view/launcher.py
> index 5c645c4..e9f81d7 100644
> --- a/src/jarabe/view/launcher.py
> +++ b/src/jarabe/view/launcher.py
> @@ -32,7 +32,7 @@ class LaunchWindow(gtk.Window):
> def __init__(self, activity_id, icon_path, icon_color):
> gobject.GObject.__init__(self)
>
> - self.props.type_hint = gtk.gdk.WINDOW_TYPE_HINT_NORMAL
> + self.props.type_hint = gtk.gdk.WINDOW_TYPE_HINT_SPLASHSCREEN
> self.props.decorated = False
> self.modify_bg(gtk.STATE_NORMAL, style.COLOR_WHITE.get_gdk_color())
>
> @@ -94,8 +94,6 @@ class LaunchWindow(gtk.Window):
>
> def __realize_cb(self, widget):
> wm.set_activity_id(widget.window, str(self._activity_id))
> - widget.window.property_change('_SUGAR_WINDOW_TYPE', 'STRING', 8,
> - gtk.gdk.PROP_MODE_REPLACE, 'launcher')
>
> def __size_changed_cb(self, screen):
> self._update_size()
> --
> 1.7.11.4
>
> _______________________________________________
> Sugar-devel mailing list
> Sugar-devel at lists.sugarlabs.org
> http://lists.sugarlabs.org/listinfo/sugar-devel
--
.. manuq ..
More information about the Sugar-devel
mailing list