From: Mikael Magnusson Date: Thu, 29 Jan 2009 21:46:04 +0000 (+0100) Subject: Merge branch 'backport' into 3.4 X-Git-Tag: release-3.4.8-rc2~5 X-Git-Url: http://git.openbox.org/?p=mikachu%2Fopenbox.git;a=commitdiff_plain;h=dd4ea774f80723518f8df87e0892213dd504ec97;hp=-c Merge branch 'backport' into 3.4 --- dd4ea774f80723518f8df87e0892213dd504ec97 diff --combined openbox/client.h index 5202443,f55c7ac..c03ebe2 --- a/openbox/client.h +++ b/openbox/client.h @@@ -246,6 -246,8 +246,8 @@@ struct _ObClien /*! The window uses shape extension to be non-rectangular? */ gboolean shaped; + /*! The window uses shape extension to have non-rectangular input? */ + gboolean shaped_input; /*! The window is modal, so it must be processed before any windows it is related to can be focused */ @@@ -322,14 -324,14 +324,14 @@@ void client_add_destroy_notify(ObClient void client_remove_destroy_notify(ObClientCallback func); /*! Manages all existing windows */ -void client_manage_all(); +void client_manage_all(void); /*! Manages a given window @param prompt This specifies an ObPrompt which is being managed. It is possible to manage Openbox-owned windows through this. */ void client_manage(Window win, struct _ObPrompt *prompt); /*! Unmanages all managed windows */ -void client_unmanage_all(); +void client_unmanage_all(void); /*! Unmanages a given client */ void client_unmanage(ObClient *client); @@@ -342,7 -344,7 +344,7 @@@ ObClient *client_fake_manage(Window win void client_fake_unmanage(ObClient *self); /*! Sets the client list on the root window from the client_list */ -void client_set_list(); +void client_set_list(void); /*! Determines if the client should be shown or hidden currently. @return TRUE if it should be visible; otherwise, FALSE. @@@ -723,7 -725,7 +725,7 @@@ void client_set_layer(ObClient *self, g guint client_monitor(ObClient *self); -ObClient* client_under_pointer(); +ObClient* client_under_pointer(void); gboolean client_has_group_siblings(ObClient *self); diff --combined openbox/frame.c index 2cd905a,5e60d11..935cea5 --- a/openbox/frame.c +++ b/openbox/frame.c @@@ -267,25 -267,26 +267,26 @@@ void frame_adjust_theme(ObFrame *self set_theme_statics(self); } - void frame_adjust_shape(ObFrame *self) - { #ifdef SHAPE + void frame_adjust_shape_kind(ObFrame *self, int kind) + { gint num; XRectangle xrect[2]; - if (!self->client->shaped) { + if (!((kind == ShapeBounding && self->client->shaped) || + (kind == ShapeInput && self->client->shaped_input))) { /* clear the shape on the frame window */ - XShapeCombineMask(ob_display, self->window, ShapeBounding, + XShapeCombineMask(ob_display, self->window, kind, self->size.left, self->size.top, None, ShapeSet); } else { /* make the frame's shape match the clients */ - XShapeCombineShape(ob_display, self->window, ShapeBounding, + XShapeCombineShape(ob_display, self->window, kind, self->size.left, self->size.top, self->client->window, - ShapeBounding, ShapeSet); + kind, ShapeSet); num = 0; if (self->decorations & OB_FRAME_DECOR_TITLEBAR) { @@@ -308,9 -309,17 +309,17 @@@ } XShapeCombineRectangles(ob_display, self->window, - ShapeBounding, 0, 0, xrect, num, + kind, 0, 0, xrect, num, ShapeUnion, Unsorted); } + } + #endif + + void frame_adjust_shape(ObFrame *self) + { + #ifdef SHAPE + frame_adjust_shape_kind(self, ShapeBounding); + frame_adjust_shape_kind(self, ShapeInput); #endif } @@@ -1303,8 -1312,6 +1312,8 @@@ ObFrameContext frame_context_from_strin return OB_FRAME_CONTEXT_TOP; else if (!g_ascii_strcasecmp("Bottom", name)) return OB_FRAME_CONTEXT_BOTTOM; + else if (!g_ascii_strcasecmp("Handle", name)) + return OB_FRAME_CONTEXT_BOTTOM; else if (!g_ascii_strcasecmp("Left", name)) return OB_FRAME_CONTEXT_LEFT; else if (!g_ascii_strcasecmp("Right", name)) diff --combined po/en@boldquot.po index b4ffa96,33856fd..7e0e515 --- a/po/en@boldquot.po +++ b/po/en@boldquot.po @@@ -1,7 -1,7 +1,7 @@@ # English translations for openbox package. - # Copyright (C) 2008 Dana Jansens + # Copyright (C) 2009 Dana Jansens # This file is distributed under the same license as the openbox package. - # Automatically generated, 2008. + # Automatically generated, 2009. # # All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation @@@ -30,7 -30,7 +30,7 @@@ # msgid "" msgstr "" -"Project-Id-Version: openbox 3.999.0\n" +"Project-Id-Version: openbox 3.4.7-pre1\n" "Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n" "POT-Creation-Date: 2008-11-15 22:28+0100\n" "PO-Revision-Date: 2008-11-15 22:28+0100\n" diff --combined po/en@quot.po index e76d119,adfbd9e..8c13486 --- a/po/en@quot.po +++ b/po/en@quot.po @@@ -1,7 -1,7 +1,7 @@@ # English translations for openbox package. - # Copyright (C) 2008 Dana Jansens + # Copyright (C) 2009 Dana Jansens # This file is distributed under the same license as the openbox package. - # Automatically generated, 2008. + # Automatically generated, 2009. # # All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation @@@ -27,7 -27,7 +27,7 @@@ # msgid "" msgstr "" -"Project-Id-Version: openbox 3.999.0\n" +"Project-Id-Version: openbox 3.4.7-pre1\n" "Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n" "POT-Creation-Date: 2008-11-15 22:28+0100\n" "PO-Revision-Date: 2008-11-15 22:28+0100\n"