Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Schampijer <simon@schampijer.de>2011-12-12 22:37:38 (GMT)
committer Simon Schampijer <simon@schampijer.de>2011-12-12 22:37:38 (GMT)
commitd27a0ace61f7c571e900e555b7f7805493f1b57b (patch)
treec190e22cc553449a82a614a0f7cf6057743b7269
parentc2534d1852adbb5da8e57372c821a4e8349f86fd (diff)
parent901a4b8caf7e2f06667191349bc0ddad612b2ecd (diff)
Merge branch 'master' of git.sugarlabs.org:~erikos/sugar-toolkit/sugar-toolkit-gtk3
-rw-r--r--src/sugar3/Makefile.am4
-rw-r--r--src/sugar3/graphics/icon.py2
-rw-r--r--src/sugar3/graphics/palette.py1
-rw-r--r--src/sugar3/graphics/palettewindow.py14
-rw-r--r--src/sugar3/graphics/tray.py9
-rw-r--r--src/sugar3/wm.py17
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