[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

compiz: Changes to 'debian-unstable'



 CMakeLists.txt                              |    6 ++---
 NEWS                                        |   21 +++++++++++++++++
 debian/changelog                            |    7 +++++
 debian/compiz-core.install                  |    3 +-
 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 -
 15 files changed, 92 insertions(+), 16 deletions(-)

New commits:
commit 6d08a2cb8cfddd90451b612a9169ebfa000efb2d
Author: Janos Guljas <janos@resenje.org>
Date:   Sun May 1 13:15:00 2011 +0200

    Prepare 0.9.4-1

diff --git a/debian/changelog b/debian/changelog
index fbe3e00..077696e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+compiz (0.9.4-1) experimental; urgency=low
+
+  * Non-maintainer upload.
+  * New upstream release.
+
+ -- Janos Guljas <janos@resenje.org>  Tue, 26 Apr 2011 13:37:23 +0200
+
 compiz (0.9.2.1+git20110226.f059fae9-4) experimental; urgency=low
 
   * compiz-plugins needs a Depends libdecoration0 (>= 0.9.0)
diff --git a/debian/compiz-core.install b/debian/compiz-core.install
index 4c62fd8..8e00333 100644
--- a/debian/compiz-core.install
+++ b/debian/compiz-core.install
@@ -1,6 +1,7 @@
 usr/bin/compiz*
 debian/compiz-decorator usr/bin/
-usr/share/compiz/images/*.png
+usr/share/compiz/*.png
+usr/share/compiz/cube/images/*.png
 usr/share/compiz/*xml
 usr/share/locale
 usr/share/applications/compiz.desktop

commit 011a611d42c6ab0a08d5f543d4456c3d74045b7d
Author: Sam Spilsbury <sam.spilsbury@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.spilsbury@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.spilsbury@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.spilsbury@canonical.com>)
 ========================================================================
 Bugfix release.

commit 16295397033bee4ace327b6ba48830e844e77b4d
Author: Sam Spilsbury <sam.spilsbury@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.spilsbury@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.spilsbury@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);
 


Reply to: