mirror of
https://github.com/brl/mutter.git
synced 2025-02-16 13:24:09 +00:00
Patch from Björn Lindqvist to fix button lighting with dragged clicks.
2006-08-07 Elijah Newren <newren gmail com> Patch from Björn Lindqvist to fix button lighting with dragged clicks. #321474. * src/frames.c (meta_frames_button_press_event): update the prelit_control, (meta_frames_button_release_event): some code refactoring to simplify things a bit, and make sure to update the prelit_control
This commit is contained in:
parent
d4973e8d1b
commit
dcef402d68
10
ChangeLog
10
ChangeLog
@ -1,3 +1,13 @@
|
|||||||
|
2006-08-07 Elijah Newren <newren gmail com>
|
||||||
|
|
||||||
|
Patch from Björn Lindqvist to fix button lighting with dragged
|
||||||
|
clicks. #321474.
|
||||||
|
|
||||||
|
* src/frames.c (meta_frames_button_press_event): update the
|
||||||
|
prelit_control, (meta_frames_button_release_event): some code
|
||||||
|
refactoring to simplify things a bit, and make sure to update the
|
||||||
|
prelit_control
|
||||||
|
|
||||||
2006-08-07 Elijah Newren <newren gmail com>
|
2006-08-07 Elijah Newren <newren gmail com>
|
||||||
|
|
||||||
* src/keybindings.c (process_keyboard_move_grab): Patch from
|
* src/keybindings.c (process_keyboard_move_grab): Patch from
|
||||||
|
70
src/frames.c
70
src/frames.c
@ -46,6 +46,9 @@ static void meta_frames_style_set (GtkWidget *widget,
|
|||||||
static void meta_frames_realize (GtkWidget *widget);
|
static void meta_frames_realize (GtkWidget *widget);
|
||||||
static void meta_frames_unrealize (GtkWidget *widget);
|
static void meta_frames_unrealize (GtkWidget *widget);
|
||||||
|
|
||||||
|
static void meta_frames_update_prelit_control (MetaFrames *frames,
|
||||||
|
MetaUIFrame *frame,
|
||||||
|
MetaFrameControl control);
|
||||||
static gboolean meta_frames_button_press_event (GtkWidget *widget,
|
static gboolean meta_frames_button_press_event (GtkWidget *widget,
|
||||||
GdkEventButton *event);
|
GdkEventButton *event);
|
||||||
static gboolean meta_frames_button_release_event (GtkWidget *widget,
|
static gboolean meta_frames_button_release_event (GtkWidget *widget,
|
||||||
@ -1193,15 +1196,6 @@ redraw_control (MetaFrames *frames,
|
|||||||
invalidate_cache (frames, frame);
|
invalidate_cache (frames, frame);
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
|
||||||
point_in_control (MetaFrames *frames,
|
|
||||||
MetaUIFrame *frame,
|
|
||||||
MetaFrameControl control,
|
|
||||||
int x, int y)
|
|
||||||
{
|
|
||||||
return control == get_control (frames, frame, x, y);
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
meta_frames_button_press_event (GtkWidget *widget,
|
meta_frames_button_press_event (GtkWidget *widget,
|
||||||
GdkEventButton *event)
|
GdkEventButton *event)
|
||||||
@ -1342,6 +1336,7 @@ meta_frames_button_press_event (GtkWidget *widget,
|
|||||||
event->x_root,
|
event->x_root,
|
||||||
event->y_root);
|
event->y_root);
|
||||||
|
|
||||||
|
frame->prelit_control = control;
|
||||||
redraw_control (frames, frame, control);
|
redraw_control (frames, frame, control);
|
||||||
|
|
||||||
if (op == META_GRAB_OP_CLICKING_MENU)
|
if (op == META_GRAB_OP_CLICKING_MENU)
|
||||||
@ -1525,67 +1520,54 @@ meta_frames_button_release_event (GtkWidget *widget,
|
|||||||
if (frame->xwindow == meta_core_get_grab_frame (gdk_display) &&
|
if (frame->xwindow == meta_core_get_grab_frame (gdk_display) &&
|
||||||
((int) event->button) == meta_core_get_grab_button (gdk_display))
|
((int) event->button) == meta_core_get_grab_button (gdk_display))
|
||||||
{
|
{
|
||||||
gboolean end_grab;
|
MetaFrameControl control;
|
||||||
|
|
||||||
end_grab = FALSE;
|
|
||||||
|
|
||||||
|
control = get_control (frames, frame, event->x, event->y);
|
||||||
|
|
||||||
switch (op)
|
switch (op)
|
||||||
{
|
{
|
||||||
case META_GRAB_OP_CLICKING_MINIMIZE:
|
case META_GRAB_OP_CLICKING_MINIMIZE:
|
||||||
if (point_in_control (frames, frame,
|
if (control == META_FRAME_CONTROL_MINIMIZE)
|
||||||
META_FRAME_CONTROL_MINIMIZE,
|
|
||||||
event->x, event->y))
|
|
||||||
meta_core_minimize (gdk_display, frame->xwindow);
|
meta_core_minimize (gdk_display, frame->xwindow);
|
||||||
|
|
||||||
redraw_control (frames, frame,
|
meta_core_end_grab_op (gdk_display, event->time);
|
||||||
META_FRAME_CONTROL_MINIMIZE);
|
|
||||||
end_grab = TRUE;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case META_GRAB_OP_CLICKING_MAXIMIZE:
|
case META_GRAB_OP_CLICKING_MAXIMIZE:
|
||||||
if (point_in_control (frames, frame,
|
if (control == META_FRAME_CONTROL_MAXIMIZE)
|
||||||
META_FRAME_CONTROL_MAXIMIZE,
|
|
||||||
event->x, event->y))
|
|
||||||
meta_core_maximize (gdk_display, frame->xwindow);
|
meta_core_maximize (gdk_display, frame->xwindow);
|
||||||
|
|
||||||
redraw_control (frames, frame,
|
meta_core_end_grab_op (gdk_display, event->time);
|
||||||
META_FRAME_CONTROL_MAXIMIZE);
|
|
||||||
end_grab = TRUE;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case META_GRAB_OP_CLICKING_UNMAXIMIZE:
|
case META_GRAB_OP_CLICKING_UNMAXIMIZE:
|
||||||
if (point_in_control (frames, frame,
|
if (control == META_FRAME_CONTROL_UNMAXIMIZE)
|
||||||
META_FRAME_CONTROL_UNMAXIMIZE,
|
|
||||||
event->x, event->y))
|
|
||||||
meta_core_unmaximize (gdk_display, frame->xwindow);
|
meta_core_unmaximize (gdk_display, frame->xwindow);
|
||||||
|
|
||||||
redraw_control (frames, frame,
|
meta_core_end_grab_op (gdk_display, event->time);
|
||||||
META_FRAME_CONTROL_MAXIMIZE);
|
|
||||||
end_grab = TRUE;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case META_GRAB_OP_CLICKING_DELETE:
|
case META_GRAB_OP_CLICKING_DELETE:
|
||||||
if (point_in_control (frames, frame,
|
if (control == META_FRAME_CONTROL_DELETE)
|
||||||
META_FRAME_CONTROL_DELETE,
|
|
||||||
event->x, event->y))
|
|
||||||
meta_core_delete (gdk_display, frame->xwindow, event->time);
|
meta_core_delete (gdk_display, frame->xwindow, event->time);
|
||||||
redraw_control (frames, frame,
|
|
||||||
META_FRAME_CONTROL_DELETE);
|
meta_core_end_grab_op (gdk_display, event->time);
|
||||||
end_grab = TRUE;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case META_GRAB_OP_CLICKING_MENU:
|
case META_GRAB_OP_CLICKING_MENU:
|
||||||
redraw_control (frames, frame,
|
meta_core_end_grab_op (gdk_display, event->time);
|
||||||
META_FRAME_CONTROL_MENU);
|
|
||||||
end_grab = TRUE;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (end_grab)
|
/* Update the prelit control regardless of what button the mouse
|
||||||
meta_core_end_grab_op (gdk_display, event->time);
|
* was released over; needed so that the new button can become
|
||||||
|
* prelit so to let the user know that it can now be pressed.
|
||||||
|
* :)
|
||||||
|
*/
|
||||||
|
meta_frames_update_prelit_control (frames, frame, control);
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user