matchbox-desktop: add configure event handler to fix bug 658

Bug658 - "the bottom icons on Applications and All screen are cut-off in qemu"

the reason is that desktop work area is not resized after window manager
decoration. so add configure event handler to resize the desktop work area
can fix this issue.

[YOCTO #658]

(From OE-Core rev: 79f160a7ac9426ec9952f7a9c40190da8b95c88d)

Signed-off-by: Yu Ke <ke.yu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Yu Ke 2011-03-06 16:18:30 +08:00 committed by Richard Purdie
parent 9a1ee6de17
commit a4c6bcb895
2 changed files with 51 additions and 2 deletions

View File

@ -0,0 +1,48 @@
commit 2ef9a98cbda46b5a52e20ce292eebd6ba1f3c3a8
Author: Yu Ke <ke.yu@intel.com>
Date: Sun Mar 6 17:58:45 2011 +0800
desktop: Add configure event handler for desktop resize
desktop need to resize its work area when window manager decorate its
window. Originally it is done by the hook in root window PropertyNotify
event handler, i.e. net_workarea_changed () routine. However, for unknown
reason, the PropertyNotify event does not deliver to the root window,
thus this routine does not work.
this patch fix this issue from another side. Since window manager will also
send configure event to desktop window after decoration, it also works to do
it in configure event handler.
Signed-off-by: Yu Ke <ke.yu@intel.com>
diff --git a/src/desktop.c b/src/desktop.c
index d4fc2fb..5aa2cfc 100644
--- a/src/desktop.c
+++ b/src/desktop.c
@@ -130,6 +130,15 @@ workarea_changed (int x, int y, int w, int h)
gtk_fixed_move (GTK_FIXED (fixed), box, x, y);
}
+static gboolean
+desktop_configure_callback(GtkWindow *window,
+ GdkEvent *event, gpointer data)
+{
+ gtk_widget_set_size_request (box, event->configure.width, event->configure.height);
+ gtk_widget_queue_resize (box);
+ return FALSE;
+}
+
GtkWidget *
create_desktop (void)
{
@@ -176,6 +185,9 @@ create_desktop (void)
/* Set a sane default in case there is no work area defined yet */
workarea_changed (0, 0, screen_w, screen_h);
+ g_signal_connect(G_OBJECT(window), "configure-event",
+ G_CALLBACK(desktop_configure_callback), NULL);
+
#ifdef STANDALONE
/* TODO: fake workarea_changed calls on window resize */
#else

View File

@ -11,10 +11,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
DEPENDS = "gtk+ startup-notification dbus"
SECTION = "x11/wm"
PV = "2.0+git${SRCPV}"
PR = "r0"
PR = "r1"
SRC_URI = "git://git.pokylinux.org/${BPN}-2;protocol=git \
file://dso_linking_change_build_fix.patch"
file://dso_linking_change_build_fix.patch \
file://window-resize-fix.patch"
EXTRA_OECONF = "--enable-startup-notification --with-dbus"