diff options
author | Simon Schampijer <simon@schampijer.de> | 2011-12-12 22:37:38 (GMT) |
---|---|---|
committer | Simon Schampijer <simon@schampijer.de> | 2011-12-12 22:37:38 (GMT) |
commit | d27a0ace61f7c571e900e555b7f7805493f1b57b (patch) | |
tree | c190e22cc553449a82a614a0f7cf6057743b7269 | |
parent | c2534d1852adbb5da8e57372c821a4e8349f86fd (diff) | |
parent | 901a4b8caf7e2f06667191349bc0ddad612b2ecd (diff) |
Merge branch 'master' of git.sugarlabs.org:~erikos/sugar-toolkit/sugar-toolkit-gtk3
-rw-r--r-- | src/sugar3/Makefile.am | 4 | ||||
-rw-r--r-- | src/sugar3/graphics/icon.py | 2 | ||||
-rw-r--r-- | src/sugar3/graphics/palette.py | 1 | ||||
-rw-r--r-- | src/sugar3/graphics/palettewindow.py | 14 | ||||
-rw-r--r-- | src/sugar3/graphics/tray.py | 9 | ||||
-rw-r--r-- | src/sugar3/wm.py | 17 |
6 files changed, 30 insertions, 17 deletions
diff --git a/src/sugar3/Makefile.am b/src/sugar3/Makefile.am index 9d25b98..e3a08a3 100644 --- a/src/sugar3/Makefile.am +++ b/src/sugar3/Makefile.am @@ -133,7 +133,9 @@ SugarExt_1_0_gir_FILES = \ gdk-wrapper.c \ gdk-wrapper.h \ rsvg-wrapper.c \ - rsvg-wrapper.h + rsvg-wrapper.h \ + sugar-grid.c \ + sugar-grid.h SugarExt_1_0_gir_INCLUDES = Gtk-3.0 Gdk-3.0 SugarExt_1_0_gir_PACKAGES = gtk+-3.0 gdk-3.0 diff --git a/src/sugar3/graphics/icon.py b/src/sugar3/graphics/icon.py index d6b240c..9371a0f 100644 --- a/src/sugar3/graphics/icon.py +++ b/src/sugar3/graphics/icon.py @@ -971,7 +971,7 @@ class CellRendererIcon(Gtk.CellRenderer): self._palette_invoker.attach_cell_renderer(tree_view, self) - self.connect('destroy', self.__destroy_cb) + #self.connect('destroy', self.__destroy_cb) def __destroy_cb(self, icon): self._palette_invoker.detach() diff --git a/src/sugar3/graphics/palette.py b/src/sugar3/graphics/palette.py index f5aa154..0f7e4e0 100644 --- a/src/sugar3/graphics/palette.py +++ b/src/sugar3/graphics/palette.py @@ -278,6 +278,7 @@ class Palette(PaletteWindow): setter=set_icon_visible) def set_content(self, widget): + logging.warning("%s", type(self._widget)) assert self._widget is None or isinstance(self._widget, _PaletteWindowWidget) if self._widget is None: diff --git a/src/sugar3/graphics/palettewindow.py b/src/sugar3/graphics/palettewindow.py index 4581ab7..c0c5233 100644 --- a/src/sugar3/graphics/palettewindow.py +++ b/src/sugar3/graphics/palettewindow.py @@ -1101,13 +1101,13 @@ class CanvasInvoker(Invoker): return self.AT_CURSOR def get_rect(self): - context = self._item.get_context() - if context: - x, y = context.translate_to_screen(self._item) - width, height = self._item.get_allocation() - return (x, y, width, height) - else: - return () + window = self._item.get_window() + allocation = self._item.get_allocation() + rect = Gdk.Rectangle() + rect.x, rect.y = window.get_root_coords(allocation.x, allocation.y) + rect.width = allocation.width + rect.height = allocation.height + return rect def __enter_notify_event_cb(self, button, event): self.notify_mouse_enter() diff --git a/src/sugar3/graphics/tray.py b/src/sugar3/graphics/tray.py index 7911fce..9ed0466 100644 --- a/src/sugar3/graphics/tray.py +++ b/src/sugar3/graphics/tray.py @@ -76,14 +76,15 @@ class _TrayViewport(Gtk.Viewport): assert item in self.traybar.get_children() # Get the allocation, and make sure that it is visible + allocation = item.get_allocation() if self.orientation == Gtk.Orientation.HORIZONTAL: adj = self.get_hadjustment() - start = item.allocation.x - stop = item.allocation.x + item.allocation.width + start = allocation.x + stop = allocation.x + allocation.width else: adj = self.get_vadjustment() - start = item.allocation.y - stop = item.allocation.y + item.allocation.height + start = allocation.y + stop = allocation.y + allocation.height if start < adj.get_value(): adj.set_value(start) diff --git a/src/sugar3/wm.py b/src/sugar3/wm.py index f7bda6a..5bb661a 100644 --- a/src/sugar3/wm.py +++ b/src/sugar3/wm.py @@ -21,6 +21,7 @@ UNSTABLE. Used only internally by Activity and jarabe. from gi.repository import Gtk from gi.repository import Gdk +from gi.repository import GdkX11 from gi.repository import SugarExt import logging @@ -28,7 +29,9 @@ import logging def _property_get_trapped(window, prop, prop_type): Gdk.error_trap_push() - prop_info = window.property_get(prop, prop_type) + prop_atom = Gdk.Atom.intern(prop, False) + type_atom = Gdk.Atom.intern(prop_type, False) + prop_info = Gdk.property_get(window, prop_atom, type_atom, 0, 9999, False) # We just log a message error = Gdk.error_trap_pop() @@ -53,8 +56,14 @@ def _property_change_trapped(window, prop, prop_type, format, mode, data): 'a property on a window' % error) +def _get_window_from_xid(window): + display = Gdk.Display.get_default() + xid = window.get_xid() + return GdkX11.X11Window.foreign_new_for_display(display, xid) + + def get_activity_id(wnck_window): - window = Gdk.window_foreign_new(wnck_window.get_xid()) + window = _get_window_from_xid(wnck_window) prop_info = _property_get_trapped(window, '_SUGAR_ACTIVITY_ID', 'STRING') if prop_info is None: return None @@ -63,7 +72,7 @@ def get_activity_id(wnck_window): def get_bundle_id(wnck_window): - window = Gdk.window_foreign_new(wnck_window.get_xid()) + window = _get_window_from_xid(wnck_window) prop_info = _property_get_trapped(window, '_SUGAR_BUNDLE_ID', 'STRING') if prop_info is None: return None @@ -72,7 +81,7 @@ def get_bundle_id(wnck_window): def get_sugar_window_type(wnck_window): - window = Gdk.window_foreign_new(wnck_window.get_xid()) + window = _get_window_from_xid(wnck_window) prop_info = _property_get_trapped(window, '_SUGAR_WINDOW_TYPE', 'STRING') if prop_info is None: return None |