CMakeLists.txt | 6 ++--- NEWS | 21 +++++++++++++++++ dev/null |binary gtk/window-decorator/actionmenu.c | 2 - gtk/window-decorator/events.c | 5 ++++ gtk/window-decorator/gtk-window-decorator.c | 7 +++++ gtk/window-decorator/gtk-window-decorator.h | 4 ++- gtk/window-decorator/wnck.c | 33 ++++++++++++++++++++++++++-- images/CMakeLists.txt | 3 -- plugins/cube/images/freedesktop.png |binary src/CMakeLists.txt | 2 - src/screen.cpp | 13 +++++++---- src/window.cpp | 2 - 13 files changed, 83 insertions(+), 15 deletions(-)
New commits: commit 011a611d42c6ab0a08d5f543d4456c3d74045b7d Author: Sam Spilsbury <sam.spilsb...@canonical.com> Date: Mon Mar 7 18:08:32 2011 +0800 "Update CMake Version" diff --git a/CMakeLists.txt b/CMakeLists.txt index 766e7cb..f6d63d5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,8 +19,8 @@ endif (NOT CMAKE_BUILD_TYPE) # An even micro number indicates a released version. set (COMPIZ_VERSION_MAJOR 0) set (COMPIZ_VERSION_MINOR 9) -set (COMPIZ_VERSION_MICRO 2) -set (COMPIZ_VERSION_MACRO 1) +set (COMPIZ_VERSION_MICRO 4) +set (COMPIZ_VERSION_MACRO 0) set (VERSION ${COMPIZ_VERSION_MAJOR}.${COMPIZ_VERSION_MINOR}.${COMPIZ_VERSION_MICRO}.${COMPIZ_VERSION_MACRO}) set (DECOR_INTERFACE_VERSION 20110130) commit e0825165ad99b2be07ffbe259ea1a7893855e135 Author: Sam Spilsbury <sam.spilsb...@canonical.com> Date: Mon Mar 7 18:08:19 2011 +0800 "Update news for 0.9.4 release" diff --git a/NEWS b/NEWS index 7baf339..9c56700 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,24 @@ +Release 0.9.4 (2010-02-24 Sam Spilsbury <sam.spilsb...@canonical.com>) +======================================================================== +Development Release. + +Main loop implementation now replaced by the GLib main loop, use custom +event sources and event dispatch synchronisation. Allows better integration +with plugins that require tight timing with GLib timers + +Moved image and data generation into buildsystem extensions, and installation +of such data into namespaced areas on the filesystem so plugins can't +overwrite other plugin's data + +Intelligently clip window shadows in decor + +Fixed a number of 2D decoration issues + +Fixed a number of reparenting, stacking and focus issues + +Support different frame types in gtk-window-decorator + + Release 0.9.2.1 (2010-11-06 Sam Spilsbury <sam.spilsb...@canonical.com>) ======================================================================== Bugfix release. commit 16295397033bee4ace327b6ba48830e844e77b4d Author: Sam Spilsbury <sam.spilsb...@canonical.com> Date: Mon Feb 28 20:57:42 2011 +0800 Fix gtk-w-d crashing when removing decoration. Also try to detect when windows are modal and give them modal type decorations and move freedesktop.png to cube where it will actually be used diff --git a/gtk/window-decorator/actionmenu.c b/gtk/window-decorator/actionmenu.c index f1549aa..e82098e 100644 --- a/gtk/window-decorator/actionmenu.c +++ b/gtk/window-decorator/actionmenu.c @@ -36,7 +36,7 @@ position_action_menu (GtkMenu *menu, { WnckWindow *win = (WnckWindow *) user_data; WnckWindowType win_type = wnck_window_get_window_type (win); - decor_frame_t *frame = gwd_get_decor_frame (get_frame_type (win_type)); + decor_frame_t *frame = gwd_get_decor_frame (win); decor_t *d = g_object_get_data (G_OBJECT (win), "decor"); gint bx, by, width, height; diff --git a/gtk/window-decorator/events.c b/gtk/window-decorator/events.c index f3213e5..d5dd8e8 100644 --- a/gtk/window-decorator/events.c +++ b/gtk/window-decorator/events.c @@ -1006,11 +1006,16 @@ event_filter_func (GdkXEvent *gdkxevent, d->context = NULL; d->width = d->height = 0; + d->frame = gwd_get_decor_frame (get_frame_type (win)); + update_window_decoration_size (win); update_event_windows (win); } else { + gwd_decor_frame_unref (d->frame); + d->frame = NULL; + gdk_error_trap_push (); XDeleteProperty (xdisplay, xid, win_decor_atom); gdk_display_sync (gdk_display_get_default ()); diff --git a/gtk/window-decorator/gtk-window-decorator.c b/gtk/window-decorator/gtk-window-decorator.c index 03c558c..dc22492 100644 --- a/gtk/window-decorator/gtk-window-decorator.c +++ b/gtk/window-decorator/gtk-window-decorator.c @@ -49,6 +49,10 @@ Atom toolkit_action_atom; Atom toolkit_action_window_menu_atom; Atom toolkit_action_force_quit_dialog_atom; +Atom net_wm_state_atom; +Atom net_wm_state_modal_atom; + + Time dm_sn_timestamp; struct _cursor cursor[3][3] = { @@ -271,6 +275,9 @@ main (int argc, char *argv[]) XInternAtom (xdisplay, "_COMPIZ_TOOLKIT_ACTION_FORCE_QUIT_DIALOG", FALSE); + net_wm_state_atom = XInternAtom (xdisplay,"_NET_WM_STATE", 0); + net_wm_state_modal_atom = XInternAtom (xdisplay, "_NET_MW_STATE_MODAL", 0); + status = decor_acquire_dm_session (xdisplay, gdk_screen_get_number (gdkscreen), "gwd", replace, &dm_sn_timestamp); diff --git a/gtk/window-decorator/gtk-window-decorator.h b/gtk/window-decorator/gtk-window-decorator.h index 6b43a94..c8eb4c5 100644 --- a/gtk/window-decorator/gtk-window-decorator.h +++ b/gtk/window-decorator/gtk-window-decorator.h @@ -307,6 +307,8 @@ extern Atom compiz_shadow_color_atom; extern Atom toolkit_action_atom; extern Atom toolkit_action_window_menu_atom; extern Atom toolkit_action_force_quit_dialog_atom; +extern Atom net_wm_state_atom; +extern Atom net_wm_state_modal_atom; extern Time dm_sn_timestamp; @@ -648,7 +650,7 @@ copy_to_front_buffer (decor_t *d); /* wnck.c*/ const gchar * -get_frame_type (WnckWindowType type); +get_frame_type (WnckWindow *win); void decorations_changed (WnckScreen *screen); diff --git a/gtk/window-decorator/wnck.c b/gtk/window-decorator/wnck.c index 2118511..50a5b2c 100644 --- a/gtk/window-decorator/wnck.c +++ b/gtk/window-decorator/wnck.c @@ -26,14 +26,43 @@ #include "gtk-window-decorator.h" const gchar * -get_frame_type (WnckWindowType wnck_type) +get_frame_type (WnckWindow *win) { + WnckWindowType wnck_type = wnck_window_get_window_type (win); + switch (wnck_type) { case WNCK_WINDOW_NORMAL: return "normal"; case WNCK_WINDOW_DIALOG: + { + Atom actual; + int result, format; + unsigned long n, left; + unsigned char *data; + unsigned int state = 0; + + result = XGetWindowProperty (gdk_x11_get_default_xdisplay (), wnck_window_get_xid (win), + net_wm_state_atom, + 0L, 1024L, FALSE, XA_ATOM, &actual, &format, + &n, &left, &data); + + if (result == Success && data) + { + Atom *a = (Atom *) data; + + while (n--) + if (*a++ == net_wm_state_modal_atom) + { + XFree ((void *) data); + return "modal_dialog"; + } + + + } + return "dialog"; + } case WNCK_WINDOW_MENU: return "menu"; case WNCK_WINDOW_UTILITY: @@ -269,7 +298,7 @@ add_frame_window (WnckWindow *win, d->active = wnck_window_is_active (win); d->win = win; - d->frame = gwd_get_decor_frame (get_frame_type (wnck_window_get_window_type (win))); + d->frame = gwd_get_decor_frame (get_frame_type (win)); d->last_pos_entered = NULL; attr.event_mask = ButtonPressMask | EnterWindowMask | diff --git a/images/freedesktop.png b/images/freedesktop.png deleted file mode 100644 index 9d8b69d..0000000 Binary files a/images/freedesktop.png and /dev/null differ diff --git a/plugins/cube/images/freedesktop.png b/plugins/cube/images/freedesktop.png new file mode 100644 index 0000000..9d8b69d Binary files /dev/null and b/plugins/cube/images/freedesktop.png differ commit 50ba20346c5a28dac5522c4a2da54c62a46efb3e Author: Sam Spilsbury <sam.spilsb...@canonical.com> Date: Mon Feb 28 17:42:27 2011 +0800 Fix the loading and installation of images - core images should be under the core plugin, freedesktop.png moved to cube and load images based on the actual install dirs diff --git a/CMakeLists.txt b/CMakeLists.txt index 943c30c..766e7cb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,7 +40,7 @@ else (COMPIZ_PACKAGING_ENABLED) endif (COMPIZ_PACKAGING_ENABLED) set (compiz_plugindir ${libdir}/compiz) -set (compiz_imagedir ${datadir}/compiz/images) +set (compiz_sharedir ${datadir}/compiz/) set (compiz_metadatadir ${datadir}/compiz) set (COMPIZ_I18N_DIR ${CMAKE_SOURCE_DIR}/po) diff --git a/images/CMakeLists.txt b/images/CMakeLists.txt index 77589a4..060b0d6 100644 --- a/images/CMakeLists.txt +++ b/images/CMakeLists.txt @@ -1,10 +1,9 @@ set (_images icon.png - freedesktop.png ) install ( FILES ${_images} - DESTINATION ${COMPIZ_DESTDIR}${compiz_imagedir} + DESTINATION ${COMPIZ_DESTDIR}${compiz_sharedir} ) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9b28deb..320b2f7 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -17,7 +17,7 @@ include_directories ( add_definitions ( -DHAVE_CONFIG_H -DPLUGINDIR=\\\"${compiz_plugindir}\\\" - -DIMAGEDIR=\\\"${compiz_imagedir}\\\" + -DSHAREDIR=\\\"${compiz_sharedir}\\\" -DMETADATADIR=\\\"${compiz_metadatadir}\\\" ) diff --git a/src/screen.cpp b/src/screen.cpp index 2c9c2e2..0068719 100644 --- a/src/screen.cpp +++ b/src/screen.cpp @@ -1061,7 +1061,8 @@ PrivateScreen::handleSelectionClear (XEvent *event) shutDown = true; } -#define HOME_IMAGEDIR ".compiz-1/images" +#define IMAGEDIR "images" +#define HOMECOMPIZDIR ".compiz-1" bool CompScreen::readImageFromFile (CompString &name, @@ -1081,10 +1082,12 @@ CompScreen::readImageFromFile (CompString &name, { path = home; path += "/"; - path += HOME_IMAGEDIR; + path += HOMECOMPIZDIR; path += "/"; path += pname; path += "/"; + path += IMAGEDIR; + path += "/"; path += name; status = fileToImage (path, size, stride, data); @@ -1093,10 +1096,12 @@ CompScreen::readImageFromFile (CompString &name, return true; } - path = IMAGEDIR; + path = SHAREDIR; path += "/"; path += pname; path += "/"; + path += IMAGEDIR; + path += "/"; path += name; status = fileToImage (path, size, stride, data); } @@ -3862,7 +3867,7 @@ bool CompScreen::updateDefaultIcon () { CompString file = priv->optionGetDefaultIcon (); - CompString pname = ""; + CompString pname = "core/"; void *data; CompSize size; commit 7ab96635e185bf4360ce06395244eefe14c89fdc Author: Sam Spilsbury <sam.spilsb...@canonical.com> Date: Sun Feb 27 19:55:00 2011 +0800 Don't pass uninitialized value to plugins needing to update output extents Plugins need to check against this value in order to see if they should change the extents of the decoration area on windows, don't send them uninitialized garbage when doing that. diff --git a/src/window.cpp b/src/window.cpp index fba90e3..05d8959 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -838,7 +838,7 @@ PrivateWindow::updateFrameWindow () void CompWindow::updateWindowOutputExtents () { - CompWindowExtents output; + CompWindowExtents output (priv->output); getOutputExtents (output); -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1qgul3-0000tc...@alioth.debian.org