commit compiz for openSUSE:Factory
Hello community, here is the log from the commit of package compiz for openSUSE:Factory checked in at Fri Feb 27 01:01:15 CET 2009. -------- --- compiz/compiz.changes 2009-02-26 00:53:46.000000000 +0100 +++ compiz/compiz.changes 2009-02-26 23:29:49.000000000 +0100 @@ -1,0 +2,10 @@ +Thu Feb 26 17:17:26 EST 2009 - davidr@novell.com + +- Improve bug-475349-moveInputFocusToOtherWindow.diff. (bnc#480088) + +------------------------------------------------------------------- +Thu Feb 26 12:10:11 EST 2009 - davidr@novell.com + +- Have dbus plugin register plugin options properly. (bnc#480007) + +------------------------------------------------------------------- calling whatdependson for head-i586 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ compiz.spec ++++++ --- /var/tmp/diff_new_pack.q25172/_old 2009-02-27 00:58:52.000000000 +0100 +++ /var/tmp/diff_new_pack.q25172/_new 2009-02-27 00:58:52.000000000 +0100 @@ -44,7 +44,7 @@ %endif AutoReqProv: on Version: 0.7.8 -Release: 33 +Release: 34 Requires: compiz-decorator = %{version} compiz-branding = %{version} Provides: windowmanager Summary: OpenGL window and compositing manager. @@ -436,6 +436,10 @@ %_datadir/compiz/sle.png %changelog +* Thu Feb 26 2009 davidr@novell.com +- Improve bug-475349-moveInputFocusToOtherWindow.diff. (bnc#480088) +* Thu Feb 26 2009 davidr@novell.com +- Have dbus plugin register plugin options properly. (bnc#480007) * Wed Feb 25 2009 davidr@novell.com - Fix gconf plugin. (bnc#479749) * Tue Feb 24 2009 davidr@novell.com ++++++ bug-475349-moveInputFocusToOtherWindow.diff ++++++ --- /var/tmp/diff_new_pack.q25172/_old 2009-02-27 00:58:52.000000000 +0100 +++ /var/tmp/diff_new_pack.q25172/_new 2009-02-27 00:58:52.000000000 +0100 @@ -1,5 +1,18 @@ +diff --git a/src/display.c b/src/display.c +index 72515b6..1e3593b 100644 +--- a/src/display.c ++++ b/src/display.c +@@ -2634,7 +2634,7 @@ manageDisplay (CompDisplay *d) + + /* move input focus to root window so that we get a FocusIn event when + moving it to the default window */ +- XSetInputFocus (dpy, d->screens->root.id, RevertToPointerRoot, ++ XSetInputFocus (dpy, d->screens->root.id, RevertToNone, + CurrentTime); + + if (focus == None || focus == PointerRoot) diff --git a/src/event.c b/src/event.c -index f9edcfc..4ca24c5 100644 +index f9edcfc..35ee54e 100644 --- a/src/event.c +++ b/src/event.c @@ -149,9 +149,8 @@ moveInputFocusToOtherWindow (CompWindow *w) @@ -33,3 +46,61 @@ } } +@@ -2262,10 +2265,6 @@ handleEvent (CompDisplay *d, + if (w->parent == &w->screen->root) + d->activeWindow = w->id; + +- w->activeNum = w->screen->activeNum++; +- +- addToCurrentActiveWindowHistory (w->screen, w->id); +- + XChangeProperty (d->display, w->screen->root.id, + d->winActiveAtom, + XA_WINDOW, 32, PropModeReplace, +diff --git a/src/screen.c b/src/screen.c +index 12ac091..1669059 100644 +--- a/src/screen.c ++++ b/src/screen.c +@@ -2670,7 +2670,7 @@ focusDefaultWindow (CompScreen *s) + } + else + { +- XSetInputFocus (d->display, s->root.id, RevertToPointerRoot, ++ XSetInputFocus (d->display, s->root.id, RevertToNone, + CurrentTime); + } + } +diff --git a/src/window.c b/src/window.c +index 4ef55d9..37d9cb5 100644 +--- a/src/window.c ++++ b/src/window.c +@@ -3215,7 +3215,7 @@ moveInputFocusToWindow (CompWindow *w) + + if (w->state & CompWindowStateHiddenMask) + { +- XSetInputFocus (d->display, w->frame, RevertToPointerRoot, ++ XSetInputFocus (d->display, w->frame, RevertToNone, + CurrentTime); + XChangeProperty (d->display, w->parent->id, d->winActiveAtom, + XA_WINDOW, 32, PropModeReplace, +@@ -3227,7 +3227,7 @@ moveInputFocusToWindow (CompWindow *w) + + if (w->inputHint) + { +- XSetInputFocus (d->display, w->id, RevertToPointerRoot, ++ XSetInputFocus (d->display, w->id, RevertToNone, + CurrentTime); + setFocus = TRUE; + } +@@ -3268,6 +3268,11 @@ moveInputFocusToWindow (CompWindow *w) + } + } + } ++ else ++ { ++ w->activeNum = w->screen->activeNum++; ++ addToCurrentActiveWindowHistory (w->screen, w->id); ++ } + } + } + ++++++ compiz-0.7.8-NOMAD.diff ++++++ --- /var/tmp/diff_new_pack.q25172/_old 2009-02-27 00:58:52.000000000 +0100 +++ /var/tmp/diff_new_pack.q25172/_new 2009-02-27 00:58:52.000000000 +0100 @@ -3590,10 +3590,10 @@ UNWRAP (cs, s, applyScreenTransform); UNWRAP (cs, s, outputChangeNotify); diff --git a/plugins/dbus.c b/plugins/dbus.c -index bcc6f28..97f6218 100644 +index bcc6f28..01734d5 100644 --- a/plugins/dbus.c +++ b/plugins/dbus.c -@@ -65,8 +65,10 @@ typedef struct _DbusCore { +@@ -65,13 +65,17 @@ typedef struct _DbusCore { CompFileWatchHandle fileWatch[DBUS_FILE_WATCH_NUM]; @@ -3606,7 +3606,66 @@ } DbusCore; typedef struct _DbusDisplay { -@@ -2169,62 +2171,6 @@ dbusUnregisterPluginsForScreen (DBusConnection *connection, + char **pluginList; + unsigned int nPlugins; ++ ++ CompTimeoutHandle registerPluginsHandle; + } DbusDisplay; + + static DBusHandlerResult dbusHandleMessage (DBusConnection *, +@@ -96,6 +100,19 @@ static DBusObjectPathVTable dbusMessagesVTable = { + DbusDisplay *dd = GET_DBUS_DISPLAY (d) + + static void ++dbusEmptyPluginList (CompDisplay *d) ++{ ++ int i; ++ ++ DBUS_DISPLAY (d); ++ ++ for (i = 0; i < dd->nPlugins; i++) ++ free (dd->pluginList[i]); ++ ++ dd->nPlugins = 0; ++} ++ ++static void + dbusUpdatePluginList (CompDisplay *d) + { + CompListValue *pl; +@@ -105,20 +122,15 @@ dbusUpdatePluginList (CompDisplay *d) + + pl = &d->opt[COMP_DISPLAY_OPTION_ACTIVE_PLUGINS].value.list; + +- for (i = 0; i < dd->nPlugins; i++) +- free (dd->pluginList[i]); ++ dbusEmptyPluginList (d); + + dd->pluginList = realloc (dd->pluginList, pl->nValue * sizeof (char *)); + if (!dd->pluginList) +- { +- dd->nPlugins = 0; + return; +- } + + for (i = 0; i < pl->nValue; i++) +- dd->pluginList[i] = strdup (pl->value[i].s); +- +- dd->nPlugins = pl->nValue; ++ if (findActivePlugin (pl->value[i].s)) ++ dd->pluginList[dd->nPlugins++] = strdup (pl->value[i].s); + } + + static CompOption * +@@ -1814,6 +1826,7 @@ dbusHandleMessage (DBusConnection *connection, + dbus_free_string_array (path); + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + } ++ + /* option message */ + if (dbus_message_is_method_call (message, DBUS_INTERFACE_INTROSPECTABLE, + "Introspect")) +@@ -2169,59 +2182,26 @@ dbusUnregisterPluginsForScreen (DBusConnection *connection, } static CompBool @@ -3627,11 +3686,15 @@ -static Bool -dbusInitPluginForScreen (CompPlugin *p, - CompScreen *s) --{ ++dbusRegisterPlugins (void *data) + { - char objectPath[256]; -- -- DBUS_CORE (&core); -- ++ CompDisplay *d = (CompDisplay *) data; ++ CompScreen *s; + + DBUS_CORE (&core); ++ DBUS_DISPLAY (d); + - snprintf (objectPath, 256, "%s/%s/screen%d", COMPIZ_DBUS_ROOT_PATH, - p->vTable->name, s->screenNum); - dbusRegisterOptions (dc->connection, objectPath); @@ -3646,11 +3709,14 @@ - CompBool status; - - DBUS_CORE (&core); -- ++ if (d->dirtyPluginList) ++ return TRUE; + - UNWRAP (dc, &core, initPluginForObject); - status = (*core.initPluginForObject) (p, o); - WRAP (dc, &core, initPluginForObject, dbusInitPluginForObject); -- ++ dd->registerPluginsHandle = 0; + - if (status && p->vTable->getObjectOptions) - { - static InitPluginForObjectProc dispTab[] = { @@ -3658,18 +3724,44 @@ - (InitPluginForObjectProc) dbusInitPluginForDisplay, - (InitPluginForObjectProc) dbusInitPluginForScreen - }; -- ++ dbusUpdatePluginList (d); + - RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o)); - } -- ++ dbusRegisterPluginsForDisplay (dc->connection, d); ++ for (s = d->screens; s; s = s->next) ++ dbusRegisterPluginsForScreen (dc->connection, s); + - return status; --} -- --static CompBool - dbusSetOptionForPlugin (CompObject *object, - const char *plugin, - const char *name, -@@ -2297,6 +2243,81 @@ dbusSendPluginsChangedSignal (const char *name, ++ return FALSE; + } + + static CompBool +@@ -2262,16 +2242,19 @@ dbusSetOptionForPlugin (CompObject *object, + CompScreen *s; + + CORE_DISPLAY (object); ++ DBUS_DISPLAY (d); + + dbusUnregisterPluginsForDisplay (dc->connection, d); + for (s = d->screens; s; s = s->next) + dbusUnregisterPluginsForScreen (dc->connection, s); + +- dbusUpdatePluginList (d); ++ dbusEmptyPluginList (d); + +- dbusRegisterPluginsForDisplay (dc->connection, d); +- for (s = d->screens; s; s = s->next) +- dbusRegisterPluginsForScreen (dc->connection, s); ++ if (!dd->registerPluginsHandle) ++ dd->registerPluginsHandle = ++ compAddTimeout (10, -1, ++ dbusRegisterPlugins, ++ d); + } + } + } +@@ -2297,6 +2280,84 @@ dbusSendPluginsChangedSignal (const char *name, dbus_message_unref (signal); } @@ -3677,10 +3769,12 @@ +dbusDisplayAdd (CompCore *c, + CompDisplay *d) +{ -+ DBUS_CORE (&core); ++ DBUS_DISPLAY (d); + -+ dbusUpdatePluginList (d); -+ dbusRegisterPluginsForDisplay (dc->connection, d); ++ if (!dd->registerPluginsHandle) ++ dd->registerPluginsHandle = compAddTimeout (10, -1, ++ dbusRegisterPlugins, ++ d); +} + +static void @@ -3690,6 +3784,7 @@ + DBUS_CORE (&core); + + dbusUnregisterPluginsForDisplay (dc->connection, d); ++ dbusEmptyPluginList (d); +} + +static void @@ -3751,7 +3846,7 @@ static Bool dbusInitCore (CompPlugin *p, CompCore *c) -@@ -2415,7 +2436,8 @@ dbusInitCore (CompPlugin *p, +@@ -2415,7 +2476,8 @@ dbusInitCore (CompPlugin *p, } } @@ -3761,7 +3856,7 @@ WRAP (dc, c, setOptionForPlugin, dbusSetOptionForPlugin); c->base.privates[corePrivateIndex].ptr = dc; -@@ -2452,7 +2474,8 @@ dbusFiniCore (CompPlugin *p, +@@ -2452,7 +2514,8 @@ dbusFiniCore (CompPlugin *p, dbus_connection_unref (dc->connection); */ @@ -3771,8 +3866,21 @@ UNWRAP (dc, c, setOptionForPlugin); free (dc); -@@ -2475,8 +2498,8 @@ dbusInitDisplay (CompPlugin *p, +@@ -2464,8 +2527,6 @@ dbusInitDisplay (CompPlugin *p, + { + DbusDisplay *dd; + +- DBUS_CORE (&core); +- + dd = malloc (sizeof (DbusDisplay)); + if (!dd) + return FALSE; +@@ -2473,10 +2534,12 @@ dbusInitDisplay (CompPlugin *p, + dd->pluginList = NULL; + dd->nPlugins = 0; ++ dd->registerPluginsHandle = 0; ++ d->base.privates[displayPrivateIndex].ptr = dd; - dbusUpdatePluginList (d); @@ -3782,7 +3890,7 @@ return TRUE; } -@@ -2485,10 +2508,10 @@ static void +@@ -2485,10 +2548,13 @@ static void dbusFiniDisplay (CompPlugin *p, CompDisplay *d) { @@ -3790,12 +3898,15 @@ DBUS_DISPLAY (d); - dbusUnregisterPluginsForDisplay (dc->connection, d); ++ if (dd->registerPluginsHandle) ++ compRemoveTimeout (dd->registerPluginsHandle); ++ + if (d->base.parent) + dbusObjectRemove (d->base.parent, &d->base); if (dd->pluginList) { -@@ -2506,9 +2529,8 @@ static Bool +@@ -2506,9 +2572,8 @@ static Bool dbusInitScreen (CompPlugin *p, CompScreen *s) { @@ -3807,7 +3918,7 @@ return TRUE; } -@@ -2517,9 +2539,8 @@ static void +@@ -2517,9 +2582,8 @@ static void dbusFiniScreen (CompPlugin *p, CompScreen *s) { ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@Hilbert.suse.de