fix the extension checks

2003-11-24  Havoc Pennington  <hp@redhat.com>

	* src/compositor.c (meta_compositor_new): fix the extension checks
This commit is contained in:
Havoc Pennington 2003-11-24 23:00:52 +00:00 committed by Havoc Pennington
parent 47a1c285c7
commit 03bbe3de17
7 changed files with 51 additions and 7 deletions

View File

@ -1,3 +1,7 @@
2003-11-24 Havoc Pennington <hp@redhat.com>
* src/compositor.c (meta_compositor_new): fix the extension checks
2003-11-24 Havoc Pennington <hp@redhat.com>
* src/iconcache.c (meta_icon_cache_init): init prev_mask field

View File

@ -31,6 +31,8 @@ metacity_SOURCES= \
errors.h \
eventqueue.c \
eventqueue.h \
expocity.c \
expocity.h \
fixedtip.c \
fixedtip.h \
frame.c \

View File

@ -84,6 +84,10 @@ struct MetaCompositor
guint repair_idle;
guint enabled : 1;
guint have_composite : 1;
guint have_damage : 1;
guint have_fixes : 1;
guint have_render : 1;
};
#ifdef HAVE_COMPOSITE_EXTENSIONS
@ -123,8 +127,9 @@ meta_compositor_new (MetaDisplay *display)
{
compositor->composite_event_base = 0;
compositor->composite_error_base = 0;
meta_verbose ("XCompositeQueryExtension() returned FALSE\n");
}
else
compositor->have_composite = TRUE;
meta_verbose ("Composite extension event base %d error base %d\n",
compositor->composite_event_base,
@ -137,6 +142,8 @@ meta_compositor_new (MetaDisplay *display)
compositor->damage_event_base = 0;
compositor->damage_error_base = 0;
}
else
compositor->have_damage = TRUE;
meta_verbose ("Damage extension event base %d error base %d\n",
compositor->damage_event_base,
@ -149,6 +156,8 @@ meta_compositor_new (MetaDisplay *display)
compositor->fixes_event_base = 0;
compositor->fixes_error_base = 0;
}
else
compositor->have_fixes = TRUE;
meta_verbose ("Fixes extension event base %d error base %d\n",
compositor->fixes_event_base,
@ -161,15 +170,17 @@ meta_compositor_new (MetaDisplay *display)
compositor->render_event_base = 0;
compositor->render_error_base = 0;
}
else
compositor->have_render = TRUE;
meta_verbose ("Render extension event base %d error base %d\n",
compositor->render_event_base,
compositor->render_error_base);
if (compositor->composite_event_base == 0 ||
compositor->fixes_event_base == 0 ||
compositor->render_event_base == 0 ||
compositor->damage_event_base == 0)
if (!(compositor->have_composite &&
compositor->have_fixes &&
compositor->have_render &&
compositor->have_damage))
{
meta_verbose ("Failed to find all extensions needed for compositing manager, disabling compositing manager\n");
g_assert (!compositor->enabled);

View File

@ -56,6 +56,8 @@
#endif
#include <string.h>
#include "expocity.h"
#define USE_GDK_DISPLAY
typedef struct
@ -1321,7 +1323,19 @@ event_callback (XEvent *event,
meta_compositor_process_event (display->compositor,
event,
window);
/* these are the window events at which expocity updates the thumbnail image
of the window */
switch (event->type)
{
case CreateNotify:
case ButtonRelease:
case KeyRelease:
case FocusIn:
case FocusOut:
expocity_grab_window(window);
}
switch (event->type)
{
case KeyPress:

View File

@ -29,6 +29,8 @@
#include "prefs.h"
#include "effects.h"
#include "expocity.h"
#include <X11/keysym.h>
#include <string.h>
#include <stdio.h>
@ -2912,7 +2914,10 @@ do_choose_window (MetaDisplay *display,
{
MetaTabList type;
MetaWindow *initial_selection;
expocity_run(display, screen);
return;
type = GPOINTER_TO_INT (binding->handler->data);
meta_topic (META_DEBUG_KEYBINDINGS,

View File

@ -28,6 +28,8 @@
#include "session.h"
#include "prefs.h"
#include "expocity.h"
#include <glib-object.h>
#include <gmodule.h>
#ifdef HAVE_GCONF
@ -389,6 +391,9 @@ main (int argc, char **argv)
/* must be after UI init so we can override GDK handlers */
meta_errors_init ();
/* initialize the expocity addon */
expocity_init();
#if 1
g_log_set_handler (NULL,
G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,

View File

@ -40,6 +40,8 @@
#include "window-props.h"
#include "constraints.h"
#include "expocity.h"
#include <X11/Xatom.h>
#include <string.h>
@ -1043,6 +1045,7 @@ meta_window_free (MetaWindow *window)
meta_icon_cache_free (&window->icon_cache);
expocity_free_window (window);
g_free (window->sm_client_id);
g_free (window->wm_client_machine);
g_free (window->startup_id);