From f9c085754ac8440d400341214a9f6075e61fcdf835b0488adc3bf17882af9cb4 Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Thu, 26 Jul 2007 23:58:25 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libwnck?expand=0&rev=1 --- .gitattributes | 23 ++ .gitignore | 1 + libwnck-2.12.2-window-move-1.patch | 92 ++++++ libwnck-2.19.4.tar.bz2 | 3 + libwnck-border_width-fix-2.patch | 29 ++ libwnck-opacity-2.patch | 330 +++++++++++++++++++++ libwnck-realistic-layout.patch | 59 ++++ libwnck-viewport-2.patch | 331 +++++++++++++++++++++ libwnck.changes | 442 +++++++++++++++++++++++++++++ libwnck.spec | 382 +++++++++++++++++++++++++ libwnck_spec-update.sh | 34 +++ ready | 0 12 files changed, 1726 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 libwnck-2.12.2-window-move-1.patch create mode 100644 libwnck-2.19.4.tar.bz2 create mode 100644 libwnck-border_width-fix-2.patch create mode 100644 libwnck-opacity-2.patch create mode 100644 libwnck-realistic-layout.patch create mode 100644 libwnck-viewport-2.patch create mode 100644 libwnck.changes create mode 100644 libwnck.spec create mode 100644 libwnck_spec-update.sh create mode 100644 ready diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/libwnck-2.12.2-window-move-1.patch b/libwnck-2.12.2-window-move-1.patch new file mode 100644 index 0000000..fe20194 --- /dev/null +++ b/libwnck-2.12.2-window-move-1.patch @@ -0,0 +1,92 @@ +--- libwnck/window.c ++++ libwnck/window.c +@@ -1165,6 +1165,20 @@ + window->priv->xwindow); + } + ++void ++wnck_window_move (WnckWindow *window, int x, int y) ++{ ++ g_return_if_fail (WNCK_IS_WINDOW (window)); ++ ++ _wnck_move_resize (WNCK_SCREEN_XSCREEN (window->priv->screen), ++ window->priv->xwindow, ++ TRUE, ++ FALSE, ++ x, y, ++ 0, 0); ++} ++ ++ + /** + * wnck_window_get_workspace: + * @window: a #WnckWindow +--- libwnck/window.h ++++ libwnck/window.h +@@ -217,6 +217,7 @@ + void wnck_window_unstick (WnckWindow *window); + void wnck_window_keyboard_move (WnckWindow *window); + void wnck_window_keyboard_size (WnckWindow *window); ++void wnck_window_move (WnckWindow *window, int x, int y); + + WnckWorkspace* wnck_window_get_workspace (WnckWindow *window); + void wnck_window_move_to_workspace (WnckWindow *window, +--- libwnck/xutils.c ++++ libwnck/xutils.c +@@ -919,6 +919,38 @@ + } + + void ++_wnck_move_resize (Screen *screen, ++ Window xwindow, ++ gboolean move, ++ gboolean resize, ++ int x, ++ int y, ++ unsigned int width, ++ unsigned int height) ++{ ++ XEvent xev; ++ ++ xev.xclient.type = ClientMessage; ++ xev.xclient.serial = 0; ++ xev.xclient.send_event = True; ++ xev.xclient.display = gdk_display; ++ xev.xclient.window = xwindow; ++ xev.xclient.message_type = _wnck_atom_get ("_NET_MOVERESIZE_WINDOW"); ++ xev.xclient.format = 32; ++ xev.xclient.data.l[0] = ((move) ? 3 << 7 : 0) | ((resize) ? 3 << 9 : 0); ++ xev.xclient.data.l[1] = x; ++ xev.xclient.data.l[2] = y; ++ xev.xclient.data.l[3] = width; ++ xev.xclient.data.l[4] = height; ++ ++ XSendEvent (gdk_display, ++ RootWindowOfScreen (screen), ++ False, ++ SubstructureRedirectMask | SubstructureNotifyMask, ++ &xev); ++} ++ ++void + _wnck_change_state (Screen *screen, + Window xwindow, + gboolean add, +--- libwnck/xutils.h ++++ libwnck/xutils.h +@@ -126,6 +126,15 @@ + void _wnck_keyboard_size (Screen *screen, + Window xwindow); + ++void _wnck_move_resize (Screen *screen, ++ Window xwindow, ++ gboolean move, ++ gboolean resize, ++ int x, ++ int y, ++ unsigned int width, ++ unsigned int height); ++ + void _wnck_toggle_showing_desktop (Screen *screen, + gboolean show); + diff --git a/libwnck-2.19.4.tar.bz2 b/libwnck-2.19.4.tar.bz2 new file mode 100644 index 0000000..ffc7a51 --- /dev/null +++ b/libwnck-2.19.4.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd7dbecb452b174585aa04527fb561368974b74523c47437af20d7a2c2ed852a +size 538685 diff --git a/libwnck-border_width-fix-2.patch b/libwnck-border_width-fix-2.patch new file mode 100644 index 0000000..ff4ffbf --- /dev/null +++ b/libwnck-border_width-fix-2.patch @@ -0,0 +1,29 @@ +--- libwnck/window.c 28 Mar 2006 21:49:20 -0000 1.64 ++++ libwnck/window.c 11 May 2006 00:01:07 -0000 +@@ -1761,8 +1806,10 @@ + &window->priv->y); + } + +- window->priv->width = xevent->xconfigure.width; +- window->priv->height = xevent->xconfigure.height; ++ window->priv->width = xevent->xconfigure.width + ++ xevent->xconfigure.border_width * 2; ++ window->priv->height = xevent->xconfigure.height + ++ xevent->xconfigure.border_width * 2; + + emit_geometry_changed (window); + } +--- libwnck/xutils.c 25 Mar 2006 08:59:28 -0000 1.55 ++++ libwnck/xutils.c 11 May 2006 00:01:08 -0000 +@@ -2227,9 +2267,9 @@ + _wnck_get_window_position (screen, xwindow, xp, yp); + + if (widthp) +- *widthp = width; ++ *widthp = width + bw * 2; + if (heightp) +- *heightp = height; ++ *heightp = height + bw * 2; + } + + void diff --git a/libwnck-opacity-2.patch b/libwnck-opacity-2.patch new file mode 100644 index 0000000..0f5b1fb --- /dev/null +++ b/libwnck-opacity-2.patch @@ -0,0 +1,330 @@ +Index: libwnck/window-action-menu.c +=================================================================== +--- libwnck/window-action-menu.c.orig ++++ libwnck/window-action-menu.c +@@ -48,6 +48,7 @@ typedef enum + ABOVE, + MOVE, + RESIZE, ++ CHANGE_OPACITY, + PIN, + UNPIN, + LEFT, +@@ -68,6 +69,7 @@ struct _ActionMenuData + GtkWidget *above_item; + GtkWidget *move_item; + GtkWidget *resize_item; ++ GtkWidget *opacity_item; + GtkWidget *close_item; + GtkWidget *workspace_separator; + GtkWidget *pin_item; +@@ -134,7 +136,7 @@ item_activated_callback (GtkWidget *menu + { + ActionMenuData *amd = get_data (menu_item); + WindowAction action = GPOINTER_TO_INT (data); +- ++ + if (amd == NULL) + return; + +@@ -170,6 +172,15 @@ item_activated_callback (GtkWidget *menu + case RESIZE: + wnck_window_keyboard_size (amd->window); + break; ++ case CHANGE_OPACITY: { ++ int opacity_value; ++ ++ opacity_value = ++ GPOINTER_TO_INT (g_object_get_data (G_OBJECT (menu_item), ++ "opacity")); ++ ++ wnck_window_set_opacity (amd->window, opacity_value); ++ } break; + case PIN: + wnck_window_unpin (amd->window); + break; +@@ -741,6 +752,47 @@ wnck_create_window_action_menu (WnckWind + g_free (label); + } + ++ if (wnck_screen_net_wm_supports (wnck_window_get_screen (amd->window), ++ "_NET_WM_WINDOW_OPACITY")) ++ { ++ guint present_opacity; ++ gint j; ++ ++ amd->opacity_item = gtk_menu_item_new_with_mnemonic (_("_Opacity")); ++ gtk_widget_show (amd->opacity_item); ++ ++ submenu = gtk_menu_new (); ++ gtk_menu_item_set_submenu (GTK_MENU_ITEM (amd->opacity_item), ++ submenu); ++ ++ gtk_menu_shell_append (GTK_MENU_SHELL (menu), amd->opacity_item); ++ ++ present_opacity = wnck_window_get_opacity (window); ++ for (j = 0; j < 4; j++) ++ { ++ GtkWidget *item; ++ gchar *label; ++ guint o; ++ ++ label = g_strdup_printf ("%d%%", (j + 1) * 25); ++ ++ item = make_menu_item (amd, CHANGE_OPACITY); ++ ++ o = (j + 1) * 25; ++ g_object_set_data (G_OBJECT (item), "opacity", GINT_TO_POINTER (o)); ++ ++ if (o == present_opacity) ++ gtk_widget_set_sensitive (item, FALSE); ++ ++ gtk_menu_shell_append (GTK_MENU_SHELL (submenu), item); ++ ++ set_item_text (item, label); ++ set_item_stock (item, NULL); ++ ++ g_free (label); ++ } ++ } ++ + separator = gtk_separator_menu_item_new (); + gtk_widget_show (separator); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), +Index: libwnck/window.c +=================================================================== +--- libwnck/window.c.orig ++++ libwnck/window.c +@@ -106,6 +106,8 @@ struct _WnckWindowPrivate + + char *res_class; + char *res_name; ++ ++ guint32 opacity; + + /* true if transient_for points to root window, + * not another app window +@@ -150,6 +152,7 @@ struct _WnckWindowPrivate + guint need_update_startup_id : 1; + guint need_update_wmclass : 1; + guint need_update_wmhints : 1; ++ guint need_update_opacity : 1; + guint need_update_frame_extents : 1; + + guint need_emit_name_changed : 1; +@@ -165,6 +168,7 @@ enum { + ICON_CHANGED, + ACTIONS_CHANGED, + GEOMETRY_CHANGED, ++ OPACITY_CHANGED, + LAST_SIGNAL + }; + +@@ -193,6 +197,7 @@ static void update_wintype (WnckWindow + static void update_transient_for (WnckWindow *window); + static void update_startup_id (WnckWindow *window); + static void update_wmclass (WnckWindow *window); ++static void update_opacity (WnckWindow *window); + static void update_frame_extents (WnckWindow *window); + static void unqueue_update (WnckWindow *window); + static void queue_update (WnckWindow *window); +@@ -325,6 +330,15 @@ wnck_window_class_init (WnckWindowClass + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); ++ ++ signals[OPACITY_CHANGED] = ++ g_signal_new ("opacity_changed", ++ G_OBJECT_CLASS_TYPE (object_class), ++ G_SIGNAL_RUN_LAST, ++ G_STRUCT_OFFSET (WnckWindowClass, opacity_changed), ++ NULL, NULL, ++ g_cclosure_marshal_VOID__VOID, ++ G_TYPE_NONE, 0); + } + + static void +@@ -459,6 +473,7 @@ _wnck_window_create (Window xwindow + window->priv->need_update_startup_id = TRUE; + window->priv->need_update_wmclass = TRUE; + window->priv->need_update_wmhints = TRUE; ++ window->priv->need_update_opacity = TRUE; + window->priv->need_update_frame_extents = TRUE; + window->priv->need_emit_name_changed = FALSE; + window->priv->need_emit_icon_changed = FALSE; +@@ -2097,6 +2112,29 @@ wnck_window_set_geometry (WnckWindow + gravity_and_flags, x, y, width, height); + } + ++guint ++wnck_window_get_opacity (WnckWindow *window) ++{ ++ guint64 o; ++ ++ g_return_val_if_fail (WNCK_IS_WINDOW (window), 0); ++ ++ o = ((guint64) window->priv->opacity * 1005) / G_MAXUINT32; ++ ++ return o / 10; ++} ++ ++void ++wnck_window_set_opacity (WnckWindow *window, ++ guint opacity) ++{ ++ g_return_if_fail (WNCK_IS_WINDOW (window)); ++ ++ _wnck_change_opacity (WNCK_SCREEN_XSCREEN (window->priv->screen), ++ wnck_window_get_xid (window), ++ (((guint64) opacity * G_MAXUINT32) / 100)); ++} ++ + /** + * wnck_window_is_visible_on_workspace: + * @window: a #WnckWindow. +@@ -2342,6 +2380,13 @@ _wnck_window_process_property_notify (Wn + window->priv->need_update_frame_extents = TRUE; + queue_update (window); + } ++ else if (xevent->xproperty.atom == ++ _wnck_atom_get ("_NET_WM_WINDOW_OPACITY")) ++ { ++ window->priv->need_update_opacity = TRUE; ++ queue_update (window); ++ } ++ + } + + void +@@ -2893,6 +2938,17 @@ update_frame_extents (WnckWindow *window + } + + static void ++update_opacity (WnckWindow *window) ++{ ++ if (!window->priv->need_update_opacity) ++ return; ++ ++ window->priv->need_update_opacity = FALSE; ++ ++ window->priv->opacity = _wnck_get_opacity (window->priv->xwindow); ++} ++ ++static void + force_update_now (WnckWindow *window) + { + WnckWindowState old_state; +@@ -2927,6 +2983,7 @@ force_update_now (WnckWindow *window) + */ + update_workspace (window); /* emits signals */ + update_actions (window); ++ update_opacity (window); + update_frame_extents (window); /* emits signals */ + + get_icons (window); +Index: libwnck/window.h +=================================================================== +--- libwnck/window.h.orig ++++ libwnck/window.h +@@ -268,6 +268,9 @@ struct _WnckWindowClass + /* Changed size/position */ + void (* geometry_changed) (WnckWindow *window); + ++ /* Changed opacity */ ++ void (* opacity_changed) (WnckWindow *window); ++ + /* Padding for future expansion */ + void (* pad1) (void); + void (* pad2) (void); +@@ -394,6 +397,9 @@ void wnck_window_set_geometry (WnckWindo + int width, + int height); + ++guint wnck_window_get_opacity (WnckWindow *window); ++void wnck_window_set_opacity (WnckWindow *window, guint opacity); ++ + gboolean wnck_window_is_visible_on_workspace (WnckWindow *window, + WnckWorkspace *workspace); + gboolean wnck_window_is_on_workspace (WnckWindow *window, +Index: libwnck/xutils.c +=================================================================== +--- libwnck/xutils.c.orig ++++ libwnck/xutils.c +@@ -1124,6 +1124,33 @@ _wnck_toggle_showing_desktop (Screen *s + &xev); + } + ++void ++_wnck_change_opacity (Screen *screen, ++ Window xwindow, ++ guint32 opacity) ++{ ++ XEvent xev; ++ ++ xev.xclient.type = ClientMessage; ++ xev.xclient.serial = 0; ++ xev.xclient.send_event = True; ++ xev.xclient.display = gdk_display; ++ xev.xclient.window = xwindow; ++ xev.xclient.message_type = _wnck_atom_get ("_NET_WM_WINDOW_OPACITY"); ++ xev.xclient.format = 32; ++ xev.xclient.data.l[0] = opacity; ++ xev.xclient.data.l[1] = 0; ++ xev.xclient.data.l[2] = 0; ++ xev.xclient.data.l[3] = 0; ++ xev.xclient.data.l[4] = 0; ++ ++ XSendEvent (gdk_display, ++ RootWindowOfScreen (screen), ++ False, ++ SubstructureRedirectMask | SubstructureNotifyMask, ++ &xev); ++} ++ + char* + _wnck_get_session_id (Window xwindow) + { +@@ -1298,6 +1325,19 @@ _wnck_get_frame_extents (Window xwindow + return retval; + } + ++guint32 ++_wnck_get_opacity (Window xwindow) ++{ ++ int val; ++ ++ if (_wnck_get_cardinal (xwindow, ++ _wnck_atom_get ("_NET_WM_WINDOW_OPACITY"), ++ &val)) ++ return val; ++ ++ return G_MAXUINT32; ++} ++ + void + _wnck_select_input (Window xwindow, + int mask) +Index: libwnck/xutils.h +=================================================================== +--- libwnck/xutils.h.orig ++++ libwnck/xutils.h +@@ -109,6 +109,9 @@ void _wnck_activate_workspace (Screen *s + void _wnck_change_viewport (Screen *screen, + int x, + int y); ++void _wnck_change_opacity (Screen *screen, ++ Window xwindow, ++ guint32 opacity); + + char* _wnck_get_session_id (Window xwindow); + int _wnck_get_pid (Window xwindow); +@@ -124,6 +127,9 @@ gboolean _wnck_get_frame_extents (Windo + int *top_frame, + int *bottom_frame); + ++guint32 _wnck_get_opacity (Window xwindow); ++ ++ + void _wnck_select_input (Window xwindow, + int mask); + diff --git a/libwnck-realistic-layout.patch b/libwnck-realistic-layout.patch new file mode 100644 index 0000000..d460d79 --- /dev/null +++ b/libwnck-realistic-layout.patch @@ -0,0 +1,59 @@ +This fixes a problem of overaggressively grouping windows in the +tasklist with our default size 24 panel. See bnc #148840 for +details and a screenshot. + +Index: libwnck/tasklist.c +=================================================================== +RCS file: /cvs/gnome/libwnck/libwnck/tasklist.c,v +retrieving revision 1.87 +diff -u -p -u -r1.87 tasklist.c +--- libwnck/tasklist.c 3 Oct 2005 19:42:46 -0000 1.87 ++++ libwnck/tasklist.c 26 Apr 2006 21:45:51 -0000 +@@ -185,6 +185,9 @@ struct _WnckTasklistPrivate + gint minimum_width; + gint minimum_height; + ++ gint last_width; ++ gint last_height; ++ + WnckLoadIconFunction icon_loader; + void *icon_loader_data; + GDestroyNotify free_icon_loader_data; +@@ -694,6 +697,9 @@ wnck_tasklist_init (WnckTasklist *taskli + tasklist->priv->minimum_width = DEFAULT_WIDTH; + tasklist->priv->minimum_height = DEFAULT_HEIGHT; + ++ tasklist->priv->last_width = -1; ++ tasklist->priv->last_height = -1; ++ + tasklist->priv->idle_callback_tag = 0; + + tasklist->priv->monitor_num = -1; +@@ -1170,8 +1176,15 @@ wnck_tasklist_size_request (GtkWidget + requisition->width = tasklist->priv->minimum_width; + requisition->height = tasklist->priv->minimum_height; + +- fake_allocation.width = requisition->width; +- fake_allocation.height = requisition->height; ++ if (tasklist->priv->last_width != -1) ++ fake_allocation.width = tasklist->priv->last_width; ++ else ++ fake_allocation.width = requisition->width; ++ ++ if (tasklist->priv->last_height != -1) ++ fake_allocation.height = tasklist->priv->last_height; ++ else ++ fake_allocation.height = requisition->height; + + array = g_array_new (FALSE, FALSE, sizeof (int)); + +@@ -1298,6 +1311,9 @@ wnck_tasklist_size_allocate (GtkWidget + int grouping_limit; + + tasklist = WNCK_TASKLIST (widget); ++ ++ tasklist->priv->last_width = allocation->width; ++ tasklist->priv->last_height = allocation->height; + + n_windows = g_list_length (tasklist->priv->windows); + n_startup_sequences = g_list_length (tasklist->priv->startup_sequences); diff --git a/libwnck-viewport-2.patch b/libwnck-viewport-2.patch new file mode 100644 index 0000000..0bc0fa8 --- /dev/null +++ b/libwnck-viewport-2.patch @@ -0,0 +1,331 @@ +Only in .: config.h +Only in .: config.log +Only in .: config.status +Only in ./doc: Makefile +Only in .: intltool-extract +Only in .: intltool-merge +Only in .: intltool-update +Only in .: libtool +Only in ./libwnck: application.lo +Only in ./libwnck: application.o +Only in ./libwnck: class-group.lo +Only in ./libwnck: class-group.o +Only in ./libwnck: .deps +Only in ./libwnck: .libs +Only in ./libwnck: libwnck-1.la +Only in ./libwnck: Makefile +Only in ./libwnck: pager-accessible-factory.lo +Only in ./libwnck: pager-accessible-factory.o +Only in ./libwnck: pager-accessible.lo +Only in ./libwnck: pager-accessible.o +Only in ./libwnck: pager.lo +Only in ./libwnck: pager.o +Only in ./libwnck: screen.lo +Only in ./libwnck: screen.o +Only in ./libwnck: selector.lo +Only in ./libwnck: selector.o +Only in ./libwnck: stamp-wnck-enum-types.h +Only in ./libwnck: stamp-wnck-marshal.h +Only in ./libwnck: tasklist.lo +Only in ./libwnck: tasklist.o +Only in ./libwnck: test-pager +Only in ./libwnck: test-pager.o +Only in ./libwnck: test-selector +Only in ./libwnck: test-selector.o +Only in ./libwnck: test-tasklist +Only in ./libwnck: test-tasklist.o +Only in ./libwnck: test-wnck +Only in ./libwnck: test-wnck.o +Only in ./libwnck: util.lo +Only in ./libwnck: util.o +Index: libwnck/window-action-menu.c +=================================================================== +--- libwnck/window-action-menu.c.orig ++++ libwnck/window-action-menu.c +@@ -55,7 +55,13 @@ typedef enum + RIGHT, + UP, + DOWN, +- MOVE_TO_WORKSPACE ++ MOVE_TO_WORKSPACE, ++ STICK, ++ VIEWPORT_LEFT, ++ VIEWPORT_RIGHT, ++ VIEWPORT_UP, ++ VIEWPORT_DOWN, ++ MOVE_TO_VIEWPORT + } WindowAction; + + typedef struct _ActionMenuData ActionMenuData; +@@ -79,6 +85,13 @@ struct _ActionMenuData + GtkWidget *up_item; + GtkWidget *down_item; + GtkWidget *workspace_item; ++ GtkWidget *viewport_separator; ++ GtkWidget *stick_item; ++ GtkWidget *viewport_left_item; ++ GtkWidget *viewport_right_item; ++ GtkWidget *viewport_up_item; ++ GtkWidget *viewport_down_item; ++ GtkWidget *viewport_item; + guint idle_handler; + }; + +@@ -234,7 +247,73 @@ item_activated_callback (GtkWidget *menu + workspace_index)); + break; + } ++ case STICK: ++ if (wnck_window_is_sticky (amd->window)) ++ wnck_window_unstick (amd->window); ++ else ++ wnck_window_stick (amd->window); ++ break; ++ case VIEWPORT_LEFT: ++ { ++ int width, xw, yw; ++ ++ width = wnck_screen_get_width (wnck_window_get_screen (amd->window)); ++ wnck_window_get_geometry (amd->window, &xw, &yw, NULL, NULL); ++ wnck_window_move (amd->window, xw - width, yw); ++ break; ++ } ++ case VIEWPORT_RIGHT: ++ { ++ int width, xw, yw; ++ ++ width = wnck_screen_get_width (wnck_window_get_screen (amd->window)); ++ wnck_window_get_geometry (amd->window, &xw, &yw, NULL, NULL); ++ wnck_window_move (amd->window, xw + width, yw); ++ break; ++ } ++ case VIEWPORT_UP: ++ { ++ int height, xw, yw; ++ ++ height = wnck_screen_get_height (wnck_window_get_screen (amd->window)); ++ wnck_window_get_geometry (amd->window, &xw, &yw, NULL, NULL); ++ wnck_window_move (amd->window, xw, yw - height); ++ break; ++ } ++ case VIEWPORT_DOWN: ++ { ++ int height, xw, yw; ++ ++ height = wnck_screen_get_height (wnck_window_get_screen (amd->window)); ++ wnck_window_get_geometry (amd->window, &xw, &yw, NULL, NULL); ++ wnck_window_move (amd->window, xw, yw + height); ++ break; + } ++ case MOVE_TO_VIEWPORT: ++ { ++ WnckWorkspace *workspace; ++ int viewport_x, viewport_y, xw, yw, x, y; ++ ++ workspace = wnck_window_get_workspace (amd->window); ++ if (!workspace) ++ workspace = wnck_screen_get_workspace (wnck_window_get_screen (amd->window), 0); ++ viewport_x = wnck_workspace_get_viewport_x (workspace); ++ viewport_y = wnck_workspace_get_viewport_y (workspace); ++ ++ x = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (menu_item), "x")); ++ y = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (menu_item), "y")); ++ ++ wnck_window_get_geometry (amd->window, &xw, &yw, NULL, NULL); ++ ++ if (wnck_window_is_sticky (amd->window)) ++ wnck_window_unstick (amd->window); ++ ++ wnck_window_move (amd->window, ++ xw + x - viewport_x, ++ yw + y - viewport_y); ++ break; ++ } ++ } + } + + static void +@@ -397,6 +476,56 @@ update_menu_state (ActionMenuData *amd) + gtk_widget_show (amd->unpin_item); + gtk_widget_hide (amd->workspace_item); + } ++ ++ if (wnck_window_is_sticky (amd->window)) ++ { ++ set_item_text (amd->stick_item, _("_Only in This Viewport")); ++ set_item_stock (amd->stick_item, NULL); ++ gtk_widget_set_sensitive (amd->stick_item, ++ (actions & WNCK_WINDOW_ACTION_STICK) != 0); ++ } ++ else ++ { ++ set_item_text (amd->stick_item, _("_Always in Visible Viewport")); ++ set_item_stock (amd->stick_item, NULL); ++ gtk_widget_set_sensitive (amd->stick_item, ++ (actions & WNCK_WINDOW_ACTION_STICK) != 0); ++ } ++ ++ if (!wnck_window_is_sticky (amd->window)) ++ { ++ if (amd->viewport_item) ++ gtk_widget_set_sensitive (amd->viewport_item, ++ (actions & WNCK_WINDOW_ACTION_MOVE) != 0); ++ ++ if (amd->viewport_left_item) ++ gtk_widget_set_sensitive (amd->viewport_left_item, ++ (actions & WNCK_WINDOW_ACTION_MOVE) != 0); ++ ++ if (amd->viewport_right_item) ++ gtk_widget_set_sensitive (amd->viewport_right_item, ++ (actions & WNCK_WINDOW_ACTION_MOVE) != 0); ++ ++ if (amd->viewport_up_item) ++ gtk_widget_set_sensitive (amd->viewport_up_item, ++ (actions & WNCK_WINDOW_ACTION_MOVE) != 0); ++ ++ if (amd->viewport_down_item) ++ gtk_widget_set_sensitive (amd->viewport_down_item, ++ (actions & WNCK_WINDOW_ACTION_MOVE) != 0); ++ } ++ if (wnck_workspace_is_virtual (wnck_screen_get_active_workspace (screen))) ++ { ++ gtk_widget_show (amd->viewport_separator); ++ gtk_widget_show (amd->stick_item); ++ gtk_widget_show (amd->viewport_item); ++ } ++ else ++ { ++ gtk_widget_hide (amd->viewport_separator); ++ gtk_widget_hide (amd->stick_item); ++ gtk_widget_hide (amd->viewport_item); ++ } + + return FALSE; + } +@@ -590,6 +719,9 @@ wnck_create_window_action_menu (WnckWind + int num_workspaces, window_space, i; + WnckWorkspace *workspace; + WnckWorkspaceLayout layout; ++ int viewport_x, viewport_y, viewport_width, viewport_height; ++ int screen_width, screen_height; ++ int x, y; + GSList *pin_group; + + g_return_val_if_fail (WNCK_IS_WINDOW (window), NULL); +@@ -752,9 +884,113 @@ wnck_create_window_action_menu (WnckWind + g_free (label); + } + +- if (wnck_screen_net_wm_supports (wnck_window_get_screen (amd->window), +- "_NET_WM_WINDOW_OPACITY")) +- { ++ amd->viewport_separator = separator = gtk_separator_menu_item_new (); ++ gtk_widget_show (separator); ++ gtk_menu_shell_append (GTK_MENU_SHELL (menu), ++ separator); ++ ++ amd->stick_item = make_menu_item (amd, STICK); ++ gtk_menu_shell_append (GTK_MENU_SHELL (menu), ++ amd->stick_item); ++ set_item_stock (amd->stick_item, NULL); ++ ++ workspace = wnck_window_get_workspace (amd->window); ++ if (!workspace) ++ workspace = wnck_screen_get_workspace (wnck_window_get_screen (amd->window), 0); ++ ++ viewport_x = wnck_workspace_get_viewport_x (workspace); ++ viewport_y = wnck_workspace_get_viewport_y (workspace); ++ viewport_width = wnck_workspace_get_width (workspace); ++ viewport_height = wnck_workspace_get_height (workspace); ++ ++ screen_width = wnck_screen_get_width (wnck_window_get_screen (amd->window)); ++ screen_height = wnck_screen_get_height (wnck_window_get_screen (amd->window)); ++ ++ if (!wnck_window_is_sticky (amd->window)) ++ { ++ if (viewport_x >= screen_width) ++ { ++ amd->viewport_left_item = make_menu_item (amd, VIEWPORT_LEFT); ++ gtk_menu_shell_append (GTK_MENU_SHELL (menu), ++ amd->viewport_left_item); ++ set_item_text (amd->viewport_left_item, _("Move to Viewport _Left")); ++ set_item_stock (amd->viewport_left_item, NULL); ++ } ++ else ++ amd->viewport_left_item = NULL; ++ ++ if (viewport_x <= viewport_width - 2 * screen_width) ++ { ++ amd->viewport_right_item = make_menu_item (amd, VIEWPORT_RIGHT); ++ gtk_menu_shell_append (GTK_MENU_SHELL (menu), ++ amd->viewport_right_item); ++ set_item_text (amd->viewport_right_item, _("Move to Viewport R_ight")); ++ set_item_stock (amd->viewport_right_item, NULL); ++ } ++ else ++ amd->viewport_right_item = NULL; ++ ++ if (viewport_y >= screen_height) ++ { ++ amd->viewport_up_item = make_menu_item (amd, VIEWPORT_UP); ++ gtk_menu_shell_append (GTK_MENU_SHELL (menu), ++ amd->viewport_up_item); ++ set_item_text (amd->viewport_up_item, _("Move to Viewport _Up")); ++ set_item_stock (amd->viewport_up_item, NULL); ++ } ++ else ++ amd->viewport_up_item = NULL; ++ ++ if (viewport_y <= viewport_height - 2 * screen_height) ++ { ++ amd->viewport_down_item = make_menu_item (amd, VIEWPORT_DOWN); ++ gtk_menu_shell_append (GTK_MENU_SHELL (menu), ++ amd->viewport_down_item); ++ set_item_text (amd->viewport_down_item, _("Move to Viewport _Down")); ++ set_item_stock (amd->viewport_down_item, NULL); ++ } ++ else ++ amd->viewport_down_item = NULL; ++ } ++ ++ amd->viewport_item = gtk_menu_item_new_with_mnemonic (_("Move to Another _Viewport")); ++ gtk_widget_show (amd->viewport_item); ++ ++ submenu = gtk_menu_new (); ++ gtk_menu_item_set_submenu (GTK_MENU_ITEM (amd->viewport_item), ++ submenu); ++ ++ i = 1; ++ for (y = 0; y < viewport_height; y += screen_height) ++ { ++ char *label; ++ GtkWidget *item; ++ ++ for (x = 0; x < viewport_width; x += screen_width) ++ { ++ label = g_strdup_printf (_("Viewport _%d"), i++); ++ ++ item = make_menu_item (amd, MOVE_TO_VIEWPORT); ++ g_object_set_data (G_OBJECT (item), "x", GINT_TO_POINTER (x)); ++ g_object_set_data (G_OBJECT (item), "y", GINT_TO_POINTER (y)); ++ ++ if (x == viewport_x && y == viewport_y) ++ gtk_widget_set_sensitive (item, FALSE); ++ ++ gtk_menu_shell_append (GTK_MENU_SHELL (submenu), item); ++ set_item_text (item, label); ++ set_item_stock (item, NULL); ++ ++ g_free (label); ++ } ++ } ++ ++ gtk_menu_shell_append (GTK_MENU_SHELL (menu), ++ amd->viewport_item); ++ ++ if (wnck_screen_net_wm_supports (wnck_window_get_screen (amd->window), ++ "_NET_WM_WINDOW_OPACITY")) ++ { + guint present_opacity; + gint j; + diff --git a/libwnck.changes b/libwnck.changes new file mode 100644 index 0000000..c924f25 --- /dev/null +++ b/libwnck.changes @@ -0,0 +1,442 @@ +------------------------------------------------------------------- +Tue Jul 17 12:39:12 CEST 2007 - sbrabec@suse.cz + +- Fixed shared library packaging. +- Added script to update library package names. + +------------------------------------------------------------------- +Sat Jul 14 18:42:20 CEST 2007 - mrueckert@suse.de + +- fixed typo in previous change + +------------------------------------------------------------------- +Sat Jul 14 18:22:49 CEST 2007 - mrueckert@suse.de + +- use libwnck-devel and libwnck-doc. the file content would conflict + anyway so there is no need to have them as versioned subpackages. + +------------------------------------------------------------------- +Mon Jul 9 22:15:11 CEST 2007 - maw@suse.de + +- Following up on the package rename, add some new + Provides/Obsoletes. + +------------------------------------------------------------------- +Fri Jul 6 17:26:28 CEST 2007 - maw@suse.de + +- Update to version 2.19.4, and rename to libwnck-1-22 to match + sonames. +- Remove upstreamed libwnck-216129-tasklist-crash.patch + +------------------------------------------------------------------- +Tue May 29 15:12:16 CEST 2007 - danw@suse.de + +- Add libwnck-216129-tasklist-crash.patch from upstream to fix a + panel crash. #216129 + +------------------------------------------------------------------- +Fri Mar 23 13:48:19 CST 2007 - maw@suse.de + +- Update to version 2.18.0 +- Minor changes: + * libwnck/tasklist.c: (wnck_tasklist_scroll_cb): fix left/right + scroll for RTL + * libwnck/pager.c: (wnck_update_drag_icon): improve a bit, so + that the icon has a good width/height ratio, and is not always + huge + * libwnck/pager.c: (wnck_pager_set_n_rows): don't accept to set to + less than 1 row. Again. (My one-line patch was broken ;-)) + * test-tasklist.c: add an option to always group windows, and default + to automatic grouping + * test-tasklist.c: (main): + * test-selector.c: (main): don't use gtk_window_set_policy(), but + gtk_window_set_resizable() + * libwnck/pager.c: (wnck_pager_set_n_rows): don't accept to set to + less than 1 row + +------------------------------------------------------------------- +Mon Feb 19 14:51:59 CST 2007 - maw@suse.de + +- Update to version 2.17.91 + +------------------------------------------------------------------- +Wed Feb 7 12:27:30 CET 2007 - sbrabec@suse.cz + +- Do not build unusable static libraries (#238552). + +------------------------------------------------------------------- +Wed Dec 13 13:27:58 CET 2006 - sbrabec@suse.cz + +- Prefix changed to /usr. +- Spec file cleanup. + +------------------------------------------------------------------- +Tue Nov 7 20:16:53 CET 2006 - dreveman@suse.de + +- Fix viewport patch so it doesn't crash when creating action menu + for windows that are visible on more than one workspace. #217262 + +------------------------------------------------------------------- +Wed Oct 18 19:34:40 CEST 2006 - sbrabec@suse.cz + +- Enabled creating of doc package (#193240). + +------------------------------------------------------------------- +Mon Oct 16 20:55:43 CEST 2006 - dreveman@suse.de + +- Fix broken border width patch. 178222. +- Remove ibwnck-2.12.2-virtual-aspect-1.patch, it's no longer + needed. + +------------------------------------------------------------------- +Tue Oct 3 18:54:29 CEST 2006 - jhargadon@suse.de + +- update to version 2.16.1 +- Fix critical warning and leak +- Avoid sending spurious icon geometry updates +- Require GTK+ 2.8.0 +- translation updates + +------------------------------------------------------------------- +Fri Sep 15 00:17:58 CEST 2006 - jhargadon@suse.de + +- update to version 2.16.0 +- translation updates + +------------------------------------------------------------------- +Thu Aug 31 23:19:12 CEST 2006 - jhargadon@suse.de + +- update to version 2.15.92 +- Fix crash when tasklist is destroyed +- Update delete icon for the context menu +- translation updates + +------------------------------------------------------------------- +Tue Aug 15 23:03:35 CEST 2006 - jhargadon@suse.de + +- update to version 2.15.91 +- Changed the glowing code to have less and saner style properties + +------------------------------------------------------------------- +Fri Aug 4 22:00:04 CEST 2006 - gekker@suse.de + +- Update to version 2.15.90 +- Remove upstreamed patches +Features + - Add move/resize window API (Magnus Therning) + - Improve glowing effect in tasklist and make it themeable (Benjamin Berg) + [#325176] + - Use cairo in the pager (Benjamin Otte) [#339293] + - Improve drag and drop in the pager (Nickolay V. Shmyrev, Benjamin Otte) + [#96675, #339293] + - Improve look of the pager (Benjamin Otte) [#339293] + - Add dragging of windows from the tasklist (Nickolay V. Shmyrev) [#96675] + - Sort window in a group alphabetically (Xavier Claessens, Vincent) + - Change active window when scrolling on the selector (Nigel Tao) + - Add scrolling support to the tasklist (Xavier Claessens) + + Fixes + - Correctly set relief for group buttons in the tasklist (Benjamin Otte) + - Make windows that go to the bottom occupy the last pixel of the pager + (Benjamin Otte) + - Fix crashes + - Don't change workspace when releasing the button on another workspace + (Vincent) [#110510] + - Fix leaks (Dan Winship) [#334137] + - Fix minimization of "always on visible desktop" windows with the tasklist + (Vincent) [#335316] + - Fix transient cycles causing infinite loops (Dan Winship, Elijah) [#332493] + - Immediately show notification for demands-attent/urgent windows on other + workspaces in the tasklist (Leszek Matok) [#336142] + - Don't minimize the window when it's on another desktop and it was the last + active window (Vincent) [#331661] + - Fix C89 compliance (Jens Granseuer) [#332866] + - Fix window disappearing in workspace switcher after drag and drop (Vincent) + [#317373] + - Fix corrupted drawing of windows (Vincent) [#155502] + - Include demands-attention/urgent windows unconditionally in + tasklist; this should help users not miss important windows on + other workspaces (Elijah) [#305979] + - Synchronize the right-click-menu with that of Metacity's (Srirama + Sharma, Leena Gunda, Christian Neumair) [#135710] + - Escape window titles used in pango markup, avoids some crashes too + (Vincent Noel, jylefort FreeBSD org) [#306289] + - Correctly catch and handle demands-attention/urgent state changes + for transients of windows in the tasklist (Elijah) [#317541] + - Make the pager Fitts's law compliant when shadow type is none + (Vincent) [#304248] + - Correctly specify the source indication (Elijah) + - Use virtual desktop size when computing size of pager (Loic Minier, Vincent) +Update Translations + +------------------------------------------------------------------- +Tue May 30 16:25:53 CEST 2006 - danw@suse.de + +- Patch in a new method from libwnck HEAD to allow compiz to know + when a window has a real name (as opposed to a fallback name like + "untitled window"). #173059 + +------------------------------------------------------------------- +Fri May 12 21:04:25 CEST 2006 - dreveman@suse.de + +- Fix so that correct geometry is returned when border width is + greater than 0. (bnc 178222) + +------------------------------------------------------------------- +Thu May 4 23:46:55 CEST 2006 - dreveman@suse.de + +- Add opacity window action sub-menu patch. + (libwnck-opacity-2.patch) +- Add patch for viewport options in window action menu. + (libwnck-2.12.2-viewport-1.patch) (bnc 160004) + +------------------------------------------------------------------- +Thu Apr 27 00:25:05 CEST 2006 - joeshaw@suse.de + +- Add a patch to fix some layout and grouping bugs in the tasklist. + (bnc #148840) + +------------------------------------------------------------------- +Tue Mar 7 17:58:04 CET 2006 - danw@suse.de + +- Fix a crash in libwnck-2.12.2-virtual-aspect-1.patch (144722). + Fix some memory leaks to hopefully fix 78329. + +------------------------------------------------------------------- +Tue Feb 28 20:01:14 CET 2006 - danw@suse.de + +- Fix infinite loop when a window is marked TRANSIENT_FOR itself + (116722) + +------------------------------------------------------------------- +Wed Feb 15 22:29:44 CET 2006 - gekker@suse.de + +- Fix crash on window switch (b.g.o#327435) + +------------------------------------------------------------------- +Wed Jan 25 21:32:26 CET 2006 - mls@suse.de + +- converted neededforbuild to BuildRequires + +------------------------------------------------------------------- +Sat Jan 7 01:36:04 CET 2006 - dreveman@suse.de + +- Add window movement patch + +------------------------------------------------------------------- +Wed Jan 4 14:36:48 CET 2006 - dreveman@suse.de + +- Add virtual desktop aspect ratio patch + +------------------------------------------------------------------- +Wed Nov 30 23:32:20 CET 2005 - gekker@suse.de + +- Update to version 2.12.2 + +------------------------------------------------------------------- +Thu Oct 13 22:04:26 CEST 2005 - gekker@suse.de + +- Update to version 2.12.1 + +------------------------------------------------------------------- +Mon Sep 5 12:22:02 CEST 2005 - mmj@suse.de + +- Update to version 2.12.0 (GNOME 2.12) + +------------------------------------------------------------------- +Mon Aug 22 13:19:16 CEST 2005 - rodrigo@suse.de + +- Update to version 2.11.92 + +------------------------------------------------------------------- +Thu Aug 11 22:05:00 CEST 2005 - gekker@suse.de + +- Update to version 2.11.91 +- Fix use of unitialized variable + +------------------------------------------------------------------- +Fri Jul 22 23:13:09 CEST 2005 - gekker@suse.de + +- Update to version 2.11.4 + +------------------------------------------------------------------- +Wed Jun 22 02:37:44 CEST 2005 - gekker@suse.de + +- Update to version 2.11.3 + +------------------------------------------------------------------- +Wed Jun 1 19:05:39 CEST 2005 - sbrabec@suse.cz + +- Fixed devel requirements. + +------------------------------------------------------------------- +Thu Mar 10 00:51:39 CET 2005 - gekker@suse.de + +- Update to version 2.10.0 (GNOME 2.10). + +------------------------------------------------------------------- +Fri Mar 4 00:46:08 CET 2005 - gekker@suse.de + +- Update to version 2.9.92.1 + +------------------------------------------------------------------- +Fri Feb 11 05:41:25 CET 2005 - gekker@suse.de + +- Update to version 2.9.91 + +------------------------------------------------------------------- +Sun Feb 6 01:21:00 CET 2005 - gekker@suse.de + +- Update to version 2.9.90 + +------------------------------------------------------------------- +Tue Jan 4 16:53:50 CET 2005 - gekker@suse.de + +- Update to version 2.9.3 + +------------------------------------------------------------------- +Tue Dec 21 00:11:55 CET 2004 - gekker@suse.de + +- Update to version 2.8.1. +- Add gtk-doc to needed for build, release version now requires it +- Add --disable-html-dir to keep html docs from being built + +------------------------------------------------------------------- +Tue Nov 23 01:30:26 CET 2004 - ro@suse.de + +- do not use libXRes on 9.0-x86_64 + +------------------------------------------------------------------- +Fri Nov 19 14:19:07 CET 2004 - ro@suse.de + +- removed extra aclocal include directive + +------------------------------------------------------------------- +Mon Oct 25 12:40:46 CEST 2004 - ro@suse.de + +- locale rename: no -> nb + +------------------------------------------------------------------- +Thu Apr 15 18:07:21 CEST 2004 - sbrabec@suse.cz + +- Updated to version 2.6.0.1 (GNOME 2.6). + +------------------------------------------------------------------- +Sat Jan 10 16:30:55 CET 2004 - adrian@suse.de + +- add %defattr and %run_ldconfig + +------------------------------------------------------------------- +Tue Oct 07 15:25:37 CEST 2003 - sbrabec@suse.cz + +- Updated to version 2.4.0.1 (GNOME 2.4). + +------------------------------------------------------------------- +Tue Jul 15 14:05:06 CEST 2003 - pthomas@suse.de + +- Clean up the code, specially where dereferencing type-punned + pointers would break alias analysis. + +------------------------------------------------------------------- +Mon Jul 14 14:58:05 CEST 2003 - sbrabec@suse.cz + +- GNOME prefix change to /opt/gnome. + +------------------------------------------------------------------- +Tue Jun 24 19:28:43 CEST 2003 - sbrabec@suse.cz + +- Updated to version 2.2.2. +- Use %find_lang. + +------------------------------------------------------------------- +Mon Jun 2 00:25:53 CEST 2003 - ro@suse.de + +- add translations to filelist + +------------------------------------------------------------------- +Wed Jan 29 14:28:53 CET 2003 - hhetter@suse.de + +- update to version 2.2.0 + +------------------------------------------------------------------- +Thu Jan 16 10:38:25 CET 2003 - hhetter@suse.de + +- updated to version 2.1.90 +- use gtk2-devel-packages in #neededforbuild + +------------------------------------------------------------------- +Wed Jan 15 13:44:35 CET 2003 - sbrabec@suse.cz + +- Added expat to neededforbuild. + +------------------------------------------------------------------- +Thu Nov 28 12:28:46 CET 2002 - hhetter@suse.de + +- updated to version 0.18 [GNOME 2.0.3] + +------------------------------------------------------------------- +Mon Nov 11 23:49:54 CET 2002 - ro@suse.de + +- changed neededforbuild to + +------------------------------------------------------------------- +Thu Oct 24 10:31:24 CEST 2002 - hhetter@suse.de + +- use "-c" with automake (Bug Id #21066) + +------------------------------------------------------------------- +Fri Aug 9 11:21:56 CEST 2002 - hhetter@suse.de + +- updated to version 0.16 + +------------------------------------------------------------------- +Wed Jun 19 12:54:15 CEST 2002 - ro@suse.de + +- use "-a -f" for automake + +------------------------------------------------------------------- +Wed Jun 19 08:47:04 CEST 2002 - hhetter@suse.de + +- updated to version 0.14 + +------------------------------------------------------------------- +Tue Jun 4 12:18:19 CEST 2002 - hhetter@suse.de + +- updated to version 0.13, sorce frozen + +------------------------------------------------------------------- +Wed May 15 01:00:33 CEST 2002 - ro@suse.de + +- use libdir + +------------------------------------------------------------------- +Wed Apr 10 13:44:42 CEST 2002 - hhetter@suse.de + +- updated to version 0.7 + +------------------------------------------------------------------- +Thu Jan 17 12:01:14 CET 2002 - hhetter@suse.de + +- really prefixed to /opt/gnome2 + +------------------------------------------------------------------- +Thu Jan 17 10:19:42 CET 2002 - hhetter@suse.de + +- prefixed to /opt/gnome2 + +------------------------------------------------------------------- +Wed Jan 16 13:55:49 CET 2002 - hhetter@suse.de + +- updated to version 0.2 + +------------------------------------------------------------------- +Tue Jan 15 09:09:39 CET 2002 - hhetter@suse.de + +- fixed prefix + +------------------------------------------------------------------- +Mon Jan 14 18:40:47 CET 2002 - hhetter@suse.de + +- initial SuSE package for GNOME 2.0 platform +- build with automake 1.5 + diff --git a/libwnck.spec b/libwnck.spec new file mode 100644 index 0000000..639910e --- /dev/null +++ b/libwnck.spec @@ -0,0 +1,382 @@ +# +# spec file for package libwnck (Version 2.19.4) +# +# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany. +# This file and all modifications and additions to the pristine +# package are under the same license as the package itself. +# +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + +# norootforbuild + +Name: libwnck +BuildRequires: gnome-common gtk-doc gtk2-devel intltool licenses perl-XML-Parser update-desktop-files +License: LGPL v2 or later +Group: Development/Libraries/GNOME +Version: 2.19.4 +Release: 1 +# WARNING: After changing versions please call Re or rpmbuild to auto-update spec file: +#%(sh %{_sourcedir}/%{name}_spec-update.sh %{_sourcedir} %{name} libwnck-1) +%define libwnck-1_name 22 +Summary: Window Navigator Construction Kit (Library Package) +Source: %{name}-%{version}.tar.bz2 +Source1: %{name}_spec-update.sh +Patch4: libwnck-2.12.2-window-move-1.patch +Patch8: libwnck-realistic-layout.patch +Patch9: libwnck-opacity-2.patch +# someone should re-review this patch +Patch10: libwnck-viewport-2.patch +Patch11: libwnck-border_width-fix-2.patch +Requires: libwnck-1-22 licenses +BuildRoot: %{_tmppath}/%{name}-%{version}-build + +%description +The Window Navigator Construction Kit is a library that can be used to +write task lists, pagers, and similar GNOME programs. + + + +Authors: +-------- + Havoc Pennington + +%package -n libwnck-1-22 +Summary: Window Navigator Construction Kit (Library Package) +Group: Development/Libraries/GNOME +# Require translation package (%{name}) not older than the library: +Requires: %{name} >= %{version} + +%description -n libwnck-1-22 +The Window Navigator Construction Kit is a library that can be used to +write task lists, pagers, and similar GNOME programs. + + + +Authors: +-------- + Havoc Pennington + +%package devel +Summary: Include Files and Libraries mandatory for Development. +Group: Development/Libraries/GNOME +Requires: %{name}-%{shlib_name} = %{version} gtk2-devel + +%description devel +This package contains all necessary include files and libraries needed +to develop applications that require these. + + + +Authors: +-------- + Havoc Pennington + +%package doc +Summary: Window Navigator Construction Kit (Library Package) +Group: Development/Libraries/GNOME +Requires: %{name}-%{shlib_name} = %{version} + +%description doc +The Window Navigator Construction Kit is a library that can be used to +write task lists, pagers, and similar GNOME programs. + + + +Authors: +-------- + Havoc Pennington + +%prep +%setup -q +%patch4 +%patch8 +%patch9 +%patch10 +%patch11 +# rpmlint note: libwnck has a separate translation for both Bengali and Bengali India + +%build +autoreconf -f -i +# needed for libwnck-2.19.4: +export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" +%configure\ + --disable-static +make %{?jobs:-j%jobs} + +%install +%makeinstall +%find_lang %{name} +LIBNAME="$(echo $RPM_BUILD_ROOT%{_libdir}/%{name}-*.so.?? | sed 's/.*\///;s/\.so\./-/;s/\./_/')" +if test "$LIBNAME" != libwnck-1-22 ; then + echo "Library version does not match package name. It should be $LIBNAME." + exit 1 +fi +for FILE in COPYING ; do + MD5SUM=$(md5sum $FILE | sed 's/ .*//') + if test -f /usr/share/doc/licenses/md5/$MD5SUM ; then + ln -sf /usr/share/doc/licenses/md5/$MD5SUM $FILE + fi +done + +%clean +rm -rf $RPM_BUILD_ROOT + +%post -n libwnck-1-22 -p /sbin/ldconfig + +%postun -n libwnck-1-22 -p /sbin/ldconfig + +%files -f %files -f %{name}.lang +%defattr(-,root,root) +%doc AUTHORS COPYING README NEWS ChangeLog + +%files -n libwnck-1-22 +%defattr(-,root,root) +%{_libdir}/*.so.* + +%files devel +%defattr(-,root,root) +%{_includedir}/libwnck-1.0 +%{_libdir}/pkgconfig/*.pc +%{_libdir}/*.*a +%{_libdir}/*.so + +%files doc +%defattr(-,root,root) +%{_datadir}/gtk-doc/html/* + +%changelog +* Tue Jul 17 2007 - sbrabec@suse.cz +- Fixed shared library packaging. +- Added script to update library package names. +* Sat Jul 14 2007 - mrueckert@suse.de +- fixed typo in previous change +* Sat Jul 14 2007 - mrueckert@suse.de +- use libwnck-devel and libwnck-doc. the file content would conflict + anyway so there is no need to have them as versioned subpackages. +* Mon Jul 09 2007 - maw@suse.de +- Following up on the package rename, add some new + Provides/Obsoletes. +* Fri Jul 06 2007 - maw@suse.de +- Update to version 2.19.4, and rename to libwnck-1-22 to match + sonames. +- Remove upstreamed libwnck-216129-tasklist-crash.patch +* Tue May 29 2007 - danw@suse.de +- Add libwnck-216129-tasklist-crash.patch from upstream to fix a + panel crash. #216129 +* Fri Mar 23 2007 - maw@suse.de +- Update to version 2.18.0 +- Minor changes: + * libwnck/tasklist.c: (wnck_tasklist_scroll_cb): fix left/right + scroll for RTL + * libwnck/pager.c: (wnck_update_drag_icon): improve a bit, so + that the icon has a good width/height ratio, and is not always + huge + * libwnck/pager.c: (wnck_pager_set_n_rows): don't accept to set to + less than 1 row. Again. (My one-line patch was broken ;-)) + * test-tasklist.c: add an option to always group windows, and default + to automatic grouping + * test-tasklist.c: (main): + * test-selector.c: (main): don't use gtk_window_set_policy(), but + gtk_window_set_resizable() + * libwnck/pager.c: (wnck_pager_set_n_rows): don't accept to set to + less than 1 row +* Mon Feb 19 2007 - maw@suse.de +- Update to version 2.17.91 +* Wed Feb 07 2007 - sbrabec@suse.cz +- Do not build unusable static libraries (#238552). +* Wed Dec 13 2006 - sbrabec@suse.cz +- Prefix changed to /usr. +- Spec file cleanup. +* Tue Nov 07 2006 - dreveman@suse.de +- Fix viewport patch so it doesn't crash when creating action menu + for windows that are visible on more than one workspace. #217262 +* Wed Oct 18 2006 - sbrabec@suse.cz +- Enabled creating of doc package (#193240). +* Mon Oct 16 2006 - dreveman@suse.de +- Fix broken border width patch. 178222. +- Remove ibwnck-2.12.2-virtual-aspect-1.patch, it's no longer + needed. +* Tue Oct 03 2006 - jhargadon@suse.de +- update to version 2.16.1 +- Fix critical warning and leak +- Avoid sending spurious icon geometry updates +- Require GTK+ 2.8.0 +- translation updates +* Fri Sep 15 2006 - jhargadon@suse.de +- update to version 2.16.0 +- translation updates +* Thu Aug 31 2006 - jhargadon@suse.de +- update to version 2.15.92 +- Fix crash when tasklist is destroyed +- Update delete icon for the context menu +- translation updates +* Tue Aug 15 2006 - jhargadon@suse.de +- update to version 2.15.91 +- Changed the glowing code to have less and saner style properties +* Fri Aug 04 2006 - gekker@suse.de +- Update to version 2.15.90 +- Remove upstreamed patches + Features + - Add move/resize window API (Magnus Therning) + - Improve glowing effect in tasklist and make it themeable (Benjamin Berg) + [#325176] + - Use cairo in the pager (Benjamin Otte) [#339293] + - Improve drag and drop in the pager (Nickolay V. Shmyrev, Benjamin Otte) + [#96675, #339293] + - Improve look of the pager (Benjamin Otte) [#339293] + - Add dragging of windows from the tasklist (Nickolay V. Shmyrev) [#96675] + - Sort window in a group alphabetically (Xavier Claessens, Vincent) + - Change active window when scrolling on the selector (Nigel Tao) + - Add scrolling support to the tasklist (Xavier Claessens) + Fixes + - Correctly set relief for group buttons in the tasklist (Benjamin Otte) + - Make windows that go to the bottom occupy the last pixel of the pager + (Benjamin Otte) + - Fix crashes + - Don't change workspace when releasing the button on another workspace + (Vincent) [#110510] + - Fix leaks (Dan Winship) [#334137] + - Fix minimization of "always on visible desktop" windows with the tasklist + (Vincent) [#335316] + - Fix transient cycles causing infinite loops (Dan Winship, Elijah) [#332493] + - Immediately show notification for demands-attent/urgent windows on other + workspaces in the tasklist (Leszek Matok) [#336142] + - Don't minimize the window when it's on another desktop and it was the last + active window (Vincent) [#331661] + - Fix C89 compliance (Jens Granseuer) [#332866] + - Fix window disappearing in workspace switcher after drag and drop (Vincent) + [#317373] + - Fix corrupted drawing of windows (Vincent) [#155502] + - Include demands-attention/urgent windows unconditionally in + tasklist; this should help users not miss important windows on + other workspaces (Elijah) [#305979] + - Synchronize the right-click-menu with that of Metacity's (Srirama + Sharma, Leena Gunda, Christian Neumair) [#135710] + - Escape window titles used in pango markup, avoids some crashes too + (Vincent Noel, jylefort FreeBSD org) [#306289] + - Correctly catch and handle demands-attention/urgent state changes + for transients of windows in the tasklist (Elijah) [#317541] + - Make the pager Fitts's law compliant when shadow type is none + (Vincent) [#304248] + - Correctly specify the source indication (Elijah) + - Use virtual desktop size when computing size of pager (Loic Minier, Vincent) + Update Translations +* Tue May 30 2006 - danw@suse.de +- Patch in a new method from libwnck HEAD to allow compiz to know + when a window has a real name (as opposed to a fallback name like + "untitled window"). #173059 +* Fri May 12 2006 - dreveman@suse.de +- Fix so that correct geometry is returned when border width is + greater than 0. (bnc 178222) +* Thu May 04 2006 - dreveman@suse.de +- Add opacity window action sub-menu patch. + (libwnck-opacity-2.patch) +- Add patch for viewport options in window action menu. + (libwnck-2.12.2-viewport-1.patch) (bnc 160004) +* Thu Apr 27 2006 - joeshaw@suse.de +- Add a patch to fix some layout and grouping bugs in the tasklist. + (bnc #148840) +* Tue Mar 07 2006 - danw@suse.de +- Fix a crash in libwnck-2.12.2-virtual-aspect-1.patch (144722). + Fix some memory leaks to hopefully fix 78329. +* Tue Feb 28 2006 - danw@suse.de +- Fix infinite loop when a window is marked TRANSIENT_FOR itself + (116722) +* Wed Feb 15 2006 - gekker@suse.de +- Fix crash on window switch (b.g.o#327435) +* Wed Jan 25 2006 - mls@suse.de +- converted neededforbuild to BuildRequires +* Sat Jan 07 2006 - dreveman@suse.de +- Add window movement patch +* Wed Jan 04 2006 - dreveman@suse.de +- Add virtual desktop aspect ratio patch +* Wed Nov 30 2005 - gekker@suse.de +- Update to version 2.12.2 +* Thu Oct 13 2005 - gekker@suse.de +- Update to version 2.12.1 +* Mon Sep 05 2005 - mmj@suse.de +- Update to version 2.12.0 (GNOME 2.12) +* Mon Aug 22 2005 - rodrigo@suse.de +- Update to version 2.11.92 +* Thu Aug 11 2005 - gekker@suse.de +- Update to version 2.11.91 +- Fix use of unitialized variable +* Fri Jul 22 2005 - gekker@suse.de +- Update to version 2.11.4 +* Wed Jun 22 2005 - gekker@suse.de +- Update to version 2.11.3 +* Wed Jun 01 2005 - sbrabec@suse.cz +- Fixed devel requirements. +* Thu Mar 10 2005 - gekker@suse.de +- Update to version 2.10.0 (GNOME 2.10). +* Fri Mar 04 2005 - gekker@suse.de +- Update to version 2.9.92.1 +* Fri Feb 11 2005 - gekker@suse.de +- Update to version 2.9.91 +* Sun Feb 06 2005 - gekker@suse.de +- Update to version 2.9.90 +* Tue Jan 04 2005 - gekker@suse.de +- Update to version 2.9.3 +* Tue Dec 21 2004 - gekker@suse.de +- Update to version 2.8.1. +- Add gtk-doc to needed for build, release version now requires it +- Add --disable-html-dir to keep html docs from being built +* Tue Nov 23 2004 - ro@suse.de +- do not use libXRes on 9.0-x86_64 +* Fri Nov 19 2004 - ro@suse.de +- removed extra aclocal include directive +* Mon Oct 25 2004 - ro@suse.de +- locale rename: no -> nb +* Thu Apr 15 2004 - sbrabec@suse.cz +- Updated to version 2.6.0.1 (GNOME 2.6). +* Sat Jan 10 2004 - adrian@suse.de +- add %%defattr and %%run_ldconfig +* Tue Oct 07 2003 - sbrabec@suse.cz +- Updated to version 2.4.0.1 (GNOME 2.4). +* Tue Jul 15 2003 - pthomas@suse.de +- Clean up the code, specially where dereferencing type-punned + pointers would break alias analysis. +* Mon Jul 14 2003 - sbrabec@suse.cz +- GNOME prefix change to /opt/gnome. +* Tue Jun 24 2003 - sbrabec@suse.cz +- Updated to version 2.2.2. +- Use %%find_lang. +* Mon Jun 02 2003 - ro@suse.de +- add translations to filelist +* Wed Jan 29 2003 - hhetter@suse.de +- update to version 2.2.0 +* Thu Jan 16 2003 - hhetter@suse.de +- updated to version 2.1.90 +- use gtk2-devel-packages in #neededforbuild +* Wed Jan 15 2003 - sbrabec@suse.cz +- Added expat to neededforbuild. +* Thu Nov 28 2002 - hhetter@suse.de +- updated to version 0.18 [GNOME 2.0.3] +* Mon Nov 11 2002 - ro@suse.de +- changed neededforbuild to +* Thu Oct 24 2002 - hhetter@suse.de +- use "-c" with automake (Bug Id #21066) +* Fri Aug 09 2002 - hhetter@suse.de +- updated to version 0.16 +* Wed Jun 19 2002 - ro@suse.de +- use "-a -f" for automake +* Wed Jun 19 2002 - hhetter@suse.de +- updated to version 0.14 +* Tue Jun 04 2002 - hhetter@suse.de +- updated to version 0.13, sorce frozen +* Wed May 15 2002 - ro@suse.de +- use libdir +* Wed Apr 10 2002 - hhetter@suse.de +- updated to version 0.7 +* Thu Jan 17 2002 - hhetter@suse.de +- really prefixed to /opt/gnome2 +* Thu Jan 17 2002 - hhetter@suse.de +- prefixed to /opt/gnome2 +* Wed Jan 16 2002 - hhetter@suse.de +- updated to version 0.2 +* Tue Jan 15 2002 - hhetter@suse.de +- fixed prefix +* Mon Jan 14 2002 - hhetter@suse.de +- initial SuSE package for GNOME 2.0 platform +- build with automake 1.5 diff --git a/libwnck_spec-update.sh b/libwnck_spec-update.sh new file mode 100644 index 0000000..52af875 --- /dev/null +++ b/libwnck_spec-update.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +# Autobuild doesn't support package names with macros. This script will update versions in package names. + +# Usage: Automatically called from spec file by: +# libwnck_spec-update.sh DIR BASE_NAME libnames... + +if ! test -f $1/$2.spec ; then + exit +fi +BASE=$1/$2 +shift 2 + +for PKGNAME in $@ ; do + # Packages with name ending by number needs separator + if test x`echo $PKGNAME | sed "s/.*[0-9]$//"` = x ; then + SEPARATOR=- + else + SEPARATOR= + fi + sed -i " + # Copy ${PKGNAME}_name to hold space + /^%define ${PKGNAME}_name / { + h; + s/^%define ${PKGNAME}_name //; + x; + }; + + # Update ${PKGNAME}_name everywhere + /$PKGNAME$SEPARATOR[0-9][-_0-9]*/ { + G; + s/$PKGNAME$SEPARATOR[0-9][-_0-9]*\(.*\)\n\(.*\)/$PKGNAME$SEPARATOR\2\1/; + };" $BASE.spec +done diff --git a/ready b/ready new file mode 100644 index 0000000..473a0f4