mirror of
https://github.com/brl/mutter.git
synced 2025-04-25 11:19:38 +00:00
2006-09-14 Matthew Allum <mallum@openedhand.com>
Various fixes from Bastien Nocera: * clutter/clutter-event.h: * clutter/clutter-stage.c: (clutter_stage_unrealize), (clutter_stage_realize), (clutter_stage_request_coords), (clutter_stage_dispose), (clutter_stage_init): * clutter/clutter-stage.h: * gtk/gtk-clutter-test.c: (input_cb), (frame_cb), (main): * gtk/gtk-clutter.c: (realize): Misc fixes (#152) * clutter/clutter-group.c: (clutter_group_remove): Remove uneeded ref count (#143) * examples/super-oh.c: (input_cb): Handle key release rather than presses (#154) * configure.ac: Add old style X libs check when x11.pc unavailable (#101)
This commit is contained in:
parent
4dea33e123
commit
93f102fc85
22
ChangeLog
22
ChangeLog
@ -1,3 +1,25 @@
|
|||||||
|
2006-09-14 Matthew Allum <mallum@openedhand.com>
|
||||||
|
|
||||||
|
Various fixes from Bastien Nocera:
|
||||||
|
|
||||||
|
* clutter/clutter-event.h:
|
||||||
|
* clutter/clutter-stage.c: (clutter_stage_unrealize),
|
||||||
|
(clutter_stage_realize), (clutter_stage_request_coords),
|
||||||
|
(clutter_stage_dispose), (clutter_stage_init):
|
||||||
|
* clutter/clutter-stage.h:
|
||||||
|
* gtk/gtk-clutter-test.c: (input_cb), (frame_cb), (main):
|
||||||
|
* gtk/gtk-clutter.c: (realize):
|
||||||
|
Misc fixes (#152)
|
||||||
|
|
||||||
|
* clutter/clutter-group.c: (clutter_group_remove):
|
||||||
|
Remove uneeded ref count (#143)
|
||||||
|
|
||||||
|
* examples/super-oh.c: (input_cb):
|
||||||
|
Handle key release rather than presses (#154)
|
||||||
|
|
||||||
|
* configure.ac:
|
||||||
|
Add old style X libs check when x11.pc unavailable (#101)
|
||||||
|
|
||||||
2006-09-01 Matthew Allum <mallum@openedhand.com>
|
2006-09-01 Matthew Allum <mallum@openedhand.com>
|
||||||
|
|
||||||
* clutter/Makefile.am:
|
* clutter/Makefile.am:
|
||||||
|
@ -123,6 +123,10 @@ guint32 clutter_key_event_time (ClutterKeyEvent *keyev);
|
|||||||
|
|
||||||
guint clutter_key_event_state (ClutterKeyEvent *keyev);
|
guint clutter_key_event_state (ClutterKeyEvent *keyev);
|
||||||
|
|
||||||
|
gint clutter_button_event_x (ClutterButtonEvent *buttev);
|
||||||
|
|
||||||
|
gint clutter_button_event_y (ClutterButtonEvent *buttev);
|
||||||
|
|
||||||
guint clutter_key_event_symbol (ClutterKeyEvent *keyev);
|
guint clutter_key_event_symbol (ClutterKeyEvent *keyev);
|
||||||
|
|
||||||
guint16 clutter_key_event_code (ClutterKeyEvent *keyev);
|
guint16 clutter_key_event_code (ClutterKeyEvent *keyev);
|
||||||
|
@ -425,8 +425,6 @@ clutter_group_remove (ClutterGroup *self,
|
|||||||
g_return_if_fail (CLUTTER_IS_GROUP (self));
|
g_return_if_fail (CLUTTER_IS_GROUP (self));
|
||||||
g_return_if_fail (CLUTTER_IS_ACTOR (actor));
|
g_return_if_fail (CLUTTER_IS_ACTOR (actor));
|
||||||
|
|
||||||
g_object_ref (actor);
|
|
||||||
|
|
||||||
parent = clutter_actor_get_parent (actor);
|
parent = clutter_actor_get_parent (actor);
|
||||||
if (parent != CLUTTER_ACTOR (self))
|
if (parent != CLUTTER_ACTOR (self))
|
||||||
{
|
{
|
||||||
|
@ -276,7 +276,7 @@ clutter_stage_unrealize (ClutterActor *actor)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (priv->xwin)
|
if (priv->xwin != None)
|
||||||
{
|
{
|
||||||
XDestroyWindow (clutter_xdisplay(), priv->xwin);
|
XDestroyWindow (clutter_xdisplay(), priv->xwin);
|
||||||
priv->xwin = None;
|
priv->xwin = None;
|
||||||
@ -284,8 +284,11 @@ clutter_stage_unrealize (ClutterActor *actor)
|
|||||||
}
|
}
|
||||||
|
|
||||||
glXMakeCurrent(clutter_xdisplay(), None, NULL);
|
glXMakeCurrent(clutter_xdisplay(), None, NULL);
|
||||||
|
if (priv->gl_context != None)
|
||||||
|
{
|
||||||
glXDestroyContext (clutter_xdisplay(), priv->gl_context);
|
glXDestroyContext (clutter_xdisplay(), priv->gl_context);
|
||||||
priv->gl_context = None;
|
priv->gl_context = None;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -323,7 +326,7 @@ clutter_stage_realize (ClutterActor *actor)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (priv->gl_context)
|
if (priv->gl_context != None)
|
||||||
glXDestroyContext (clutter_xdisplay(), priv->gl_context);
|
glXDestroyContext (clutter_xdisplay(), priv->gl_context);
|
||||||
|
|
||||||
priv->xpixmap = XCreatePixmap (clutter_xdisplay(),
|
priv->xpixmap = XCreatePixmap (clutter_xdisplay(),
|
||||||
@ -421,7 +424,7 @@ clutter_stage_realize (ClutterActor *actor)
|
|||||||
sync_fullscreen (stage);
|
sync_fullscreen (stage);
|
||||||
sync_cursor_visible (stage);
|
sync_cursor_visible (stage);
|
||||||
|
|
||||||
if (priv->gl_context)
|
if (priv->gl_context != None)
|
||||||
glXDestroyContext (clutter_xdisplay(), priv->gl_context);
|
glXDestroyContext (clutter_xdisplay(), priv->gl_context);
|
||||||
|
|
||||||
priv->gl_context = glXCreateContext (clutter_xdisplay(),
|
priv->gl_context = glXCreateContext (clutter_xdisplay(),
|
||||||
@ -480,7 +483,7 @@ clutter_stage_request_coords (ClutterActor *self,
|
|||||||
priv->xwin_width = new_width;
|
priv->xwin_width = new_width;
|
||||||
priv->xwin_height = new_height;
|
priv->xwin_height = new_height;
|
||||||
|
|
||||||
if (priv->xwin)
|
if (priv->xwin != None)
|
||||||
XResizeWindow (clutter_xdisplay(),
|
XResizeWindow (clutter_xdisplay(),
|
||||||
priv->xwin,
|
priv->xwin,
|
||||||
priv->xwin_width,
|
priv->xwin_width,
|
||||||
@ -496,7 +499,7 @@ clutter_stage_request_coords (ClutterActor *self,
|
|||||||
sync_gl_viewport (stage);
|
sync_gl_viewport (stage);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (priv->xwin) /* Do we want to bother ? */
|
if (priv->xwin != None) /* Do we want to bother ? */
|
||||||
XMoveWindow (clutter_xdisplay(),
|
XMoveWindow (clutter_xdisplay(),
|
||||||
priv->xwin,
|
priv->xwin,
|
||||||
box->x1,
|
box->x1,
|
||||||
@ -509,7 +512,7 @@ clutter_stage_dispose (GObject *object)
|
|||||||
{
|
{
|
||||||
ClutterStage *self = CLUTTER_STAGE (object);
|
ClutterStage *self = CLUTTER_STAGE (object);
|
||||||
|
|
||||||
if (self->priv->xwin)
|
if (self->priv->xwin != None)
|
||||||
clutter_stage_unrealize (CLUTTER_ACTOR (self));
|
clutter_stage_unrealize (CLUTTER_ACTOR (self));
|
||||||
|
|
||||||
G_OBJECT_CLASS (clutter_stage_parent_class)->dispose (object);
|
G_OBJECT_CLASS (clutter_stage_parent_class)->dispose (object);
|
||||||
@ -739,6 +742,8 @@ clutter_stage_init (ClutterStage *self)
|
|||||||
priv->want_offscreen = FALSE;
|
priv->want_offscreen = FALSE;
|
||||||
priv->want_fullscreen = FALSE;
|
priv->want_fullscreen = FALSE;
|
||||||
priv->hide_cursor = FALSE;
|
priv->hide_cursor = FALSE;
|
||||||
|
priv->xwin = None;
|
||||||
|
priv->gl_context = None;
|
||||||
|
|
||||||
priv->xwin_width = 100;
|
priv->xwin_width = 100;
|
||||||
priv->xwin_height = 100;
|
priv->xwin_height = 100;
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
|
|
||||||
#include <X11/Xlib.h>
|
#include <X11/Xlib.h>
|
||||||
#include <X11/Xatom.h>
|
#include <X11/Xatom.h>
|
||||||
|
#include <GL/glx.h>
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
@ -123,6 +124,7 @@ GdkPixbuf * clutter_stage_snapshot (ClutterStage *stage,
|
|||||||
gint y,
|
gint y,
|
||||||
gint width,
|
gint width,
|
||||||
gint height);
|
gint height);
|
||||||
|
const XVisualInfo * clutter_stage_get_xvisual (ClutterStage *stage);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
13
configure.ac
13
configure.ac
@ -54,7 +54,18 @@ AC_CHECK_FUNCS([memset munmap strcasecmp strdup])
|
|||||||
|
|
||||||
dnl ========================================================================
|
dnl ========================================================================
|
||||||
|
|
||||||
PKG_CHECK_MODULES(X11, x11)
|
PKG_CHECK_MODULES(X11, x11, [have_x11=yes], [have_x11=no])
|
||||||
|
if test x$have_x11 = xno
|
||||||
|
then
|
||||||
|
AC_PATH_X
|
||||||
|
if test x"$x_includes" != x"NONE" && test -n "$x_includes" ; then
|
||||||
|
X11_CFLAGS=-I`echo $x_includes | sed -e "s/:/ -I/g"`
|
||||||
|
fi
|
||||||
|
if test x"$x_libraries" != x"NONE" && test -n "$x_libraries" ; then
|
||||||
|
X11_LIBS=-L`echo $x_libraries | sed -e "s/:/ -L/g"`
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
# FIXME: Needed ?
|
# FIXME: Needed ?
|
||||||
AC_MSG_CHECKING([for XTHREADS in Xlib])
|
AC_MSG_CHECKING([for XTHREADS in Xlib])
|
||||||
|
@ -65,7 +65,7 @@ input_cb (ClutterStage *stage,
|
|||||||
if (e)
|
if (e)
|
||||||
clutter_actor_hide(e);
|
clutter_actor_hide(e);
|
||||||
}
|
}
|
||||||
else if (event->type == CLUTTER_KEY_PRESS)
|
else if (event->type == CLUTTER_KEY_RELEASE)
|
||||||
{
|
{
|
||||||
ClutterKeyEvent *kev = (ClutterKeyEvent *) event;
|
ClutterKeyEvent *kev = (ClutterKeyEvent *) event;
|
||||||
|
|
||||||
|
@ -26,8 +26,6 @@ input_cb (ClutterStage *stage,
|
|||||||
ClutterEvent *event,
|
ClutterEvent *event,
|
||||||
gpointer data)
|
gpointer data)
|
||||||
{
|
{
|
||||||
SuperOH *oh = (SuperOH *)data;
|
|
||||||
|
|
||||||
if (event->type == CLUTTER_BUTTON_PRESS)
|
if (event->type == CLUTTER_BUTTON_PRESS)
|
||||||
{
|
{
|
||||||
ClutterButtonEvent *bev = (ClutterButtonEvent *) event;
|
ClutterButtonEvent *bev = (ClutterButtonEvent *) event;
|
||||||
@ -37,8 +35,8 @@ input_cb (ClutterStage *stage,
|
|||||||
bev->button);
|
bev->button);
|
||||||
|
|
||||||
e = clutter_stage_get_actor_at_pos (stage,
|
e = clutter_stage_get_actor_at_pos (stage,
|
||||||
clutter_button_event_x (event),
|
clutter_button_event_x (bev),
|
||||||
clutter_button_event_y (event));
|
clutter_button_event_y (bev));
|
||||||
|
|
||||||
if (e)
|
if (e)
|
||||||
clutter_actor_hide(e);
|
clutter_actor_hide(e);
|
||||||
@ -63,7 +61,6 @@ frame_cb (ClutterTimeline *timeline,
|
|||||||
gpointer data)
|
gpointer data)
|
||||||
{
|
{
|
||||||
SuperOH *oh = (SuperOH *)data;
|
SuperOH *oh = (SuperOH *)data;
|
||||||
ClutterActor *stage = clutter_stage_get_default ();
|
|
||||||
gint i;
|
gint i;
|
||||||
|
|
||||||
#if TRAILS
|
#if TRAILS
|
||||||
@ -167,12 +164,11 @@ main (int argc, char *argv[])
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* create a new group to hold multiple actors in a group */
|
/* create a new group to hold multiple actors in a group */
|
||||||
oh->group = clutter_group_new();
|
oh->group = CLUTTER_GROUP (clutter_group_new());
|
||||||
|
|
||||||
for (i = 0; i < NHANDS; i++)
|
for (i = 0; i < NHANDS; i++)
|
||||||
{
|
{
|
||||||
gint x, y, w, h;
|
gint x, y, w, h;
|
||||||
ClutterColor colour = { 255, 0, 0, 255 };
|
|
||||||
#if 1
|
#if 1
|
||||||
/* Create a texture from pixbuf, then clone in to same resources */
|
/* Create a texture from pixbuf, then clone in to same resources */
|
||||||
if (i == 0)
|
if (i == 0)
|
||||||
@ -180,6 +176,7 @@ main (int argc, char *argv[])
|
|||||||
else
|
else
|
||||||
oh->hand[i] = clutter_clone_texture_new (CLUTTER_TEXTURE(oh->hand[0]));
|
oh->hand[i] = clutter_clone_texture_new (CLUTTER_TEXTURE(oh->hand[0]));
|
||||||
#else
|
#else
|
||||||
|
ClutterColor colour = { 255, 0, 0, 255 };
|
||||||
|
|
||||||
oh->hand[i] = clutter_rectangle_new_with_color (&colour);
|
oh->hand[i] = clutter_rectangle_new_with_color (&colour);
|
||||||
clutter_actor_set_size (oh->hand[i], 50, 50);
|
clutter_actor_set_size (oh->hand[i], 50, 50);
|
||||||
|
@ -88,10 +88,9 @@ realize (GtkWidget *widget)
|
|||||||
{
|
{
|
||||||
GtkClutter *clutter;
|
GtkClutter *clutter;
|
||||||
GtkClutterPrivate *priv;
|
GtkClutterPrivate *priv;
|
||||||
XVisualInfo *xvinfo;
|
const XVisualInfo *xvinfo;
|
||||||
GdkVisual *visual;
|
GdkVisual *visual;
|
||||||
GdkColormap *colormap;
|
GdkColormap *colormap;
|
||||||
gboolean foreign_success;
|
|
||||||
|
|
||||||
clutter = GTK_CLUTTER (widget);
|
clutter = GTK_CLUTTER (widget);
|
||||||
priv = GTK_CLUTTER_GET_PRIVATE (clutter);
|
priv = GTK_CLUTTER_GET_PRIVATE (clutter);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user