plug-ins/imagemap/imap_main.c applied patch from Kevin Hurewitz that adds
2007-05-25 Sven Neumann <sven@gimp.org> * plug-ins/imagemap/imap_main.c * plug-ins/imagemap/imap_object.[ch]: applied patch from Kevin Hurewitz that adds keyboard control for resizing an area (bug #439226). svn path=/trunk/; revision=22609
This commit is contained in:
committed by
Sven Neumann
parent
1c1ee4dd21
commit
ec1161c139
@ -1018,6 +1018,23 @@ static guint _timeout;
|
||||
static guint _keyval;
|
||||
static gint _dx, _dy;
|
||||
|
||||
static void
|
||||
move_sash_selected_objects(gint dx, gint dy, gboolean fast)
|
||||
{
|
||||
if (fast) {
|
||||
dx *= 5;
|
||||
dy *= 5;
|
||||
}
|
||||
|
||||
gdk_gc_set_function(_preferences.normal_gc, GDK_XOR);
|
||||
gdk_gc_set_function(_preferences.selected_gc, GDK_XOR);
|
||||
object_list_draw_selected(_shapes, _preview->preview->window);
|
||||
object_list_move_sash_selected(_shapes, dx, dy);
|
||||
object_list_draw_selected(_shapes, _preview->preview->window);
|
||||
gdk_gc_set_function(_preferences.normal_gc, GDK_COPY);
|
||||
gdk_gc_set_function(_preferences.selected_gc, GDK_COPY);
|
||||
}
|
||||
|
||||
static void
|
||||
move_selected_objects(gint dx, gint dy, gboolean fast)
|
||||
{
|
||||
@ -1058,6 +1075,7 @@ key_press_cb(GtkWidget *widget, GdkEventKey *event)
|
||||
{
|
||||
gboolean handled = FALSE;
|
||||
gboolean shift = event->state & GDK_SHIFT_MASK;
|
||||
gboolean ctrl = event->state & GDK_CONTROL_MASK;
|
||||
Command_t *command;
|
||||
|
||||
preview_freeze();
|
||||
@ -1066,19 +1084,31 @@ key_press_cb(GtkWidget *widget, GdkEventKey *event)
|
||||
|
||||
switch (event->keyval) {
|
||||
case GDK_Left:
|
||||
move_selected_objects(-1, 0, shift);
|
||||
if (ctrl)
|
||||
move_sash_selected_objects(-1, 0, shift);
|
||||
else
|
||||
move_selected_objects(-1, 0, shift);
|
||||
handled = TRUE;
|
||||
break;
|
||||
case GDK_Right:
|
||||
move_selected_objects(1, 0, shift);
|
||||
if (ctrl)
|
||||
move_sash_selected_objects(1, 0, shift);
|
||||
else
|
||||
move_selected_objects(1, 0, shift);
|
||||
handled = TRUE;
|
||||
break;
|
||||
case GDK_Up:
|
||||
move_selected_objects(0, -1, shift);
|
||||
if (ctrl)
|
||||
move_sash_selected_objects(0, -1, shift);
|
||||
else
|
||||
move_selected_objects(0, -1, shift);
|
||||
handled = TRUE;
|
||||
break;
|
||||
case GDK_Down:
|
||||
move_selected_objects(0, 1, shift);
|
||||
if (ctrl)
|
||||
move_sash_selected_objects(0, 1, shift);
|
||||
else
|
||||
move_selected_objects(0, 1, shift);
|
||||
handled = TRUE;
|
||||
break;
|
||||
case GDK_Tab:
|
||||
|
||||
Reference in New Issue
Block a user