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
@ -1,3 +1,9 @@
|
|||||||
|
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).
|
||||||
|
|
||||||
2007-05-24 Manish Singh <yosh@gimp.org>
|
2007-05-24 Manish Singh <yosh@gimp.org>
|
||||||
|
|
||||||
* plug-ins/pygimp/pygimp-display.c (pygimp_display_new): return None
|
* plug-ins/pygimp/pygimp-display.c (pygimp_display_new): return None
|
||||||
|
@ -1018,6 +1018,23 @@ static guint _timeout;
|
|||||||
static guint _keyval;
|
static guint _keyval;
|
||||||
static gint _dx, _dy;
|
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
|
static void
|
||||||
move_selected_objects(gint dx, gint dy, gboolean fast)
|
move_selected_objects(gint dx, gint dy, gboolean fast)
|
||||||
{
|
{
|
||||||
@ -1058,6 +1075,7 @@ key_press_cb(GtkWidget *widget, GdkEventKey *event)
|
|||||||
{
|
{
|
||||||
gboolean handled = FALSE;
|
gboolean handled = FALSE;
|
||||||
gboolean shift = event->state & GDK_SHIFT_MASK;
|
gboolean shift = event->state & GDK_SHIFT_MASK;
|
||||||
|
gboolean ctrl = event->state & GDK_CONTROL_MASK;
|
||||||
Command_t *command;
|
Command_t *command;
|
||||||
|
|
||||||
preview_freeze();
|
preview_freeze();
|
||||||
@ -1066,19 +1084,31 @@ key_press_cb(GtkWidget *widget, GdkEventKey *event)
|
|||||||
|
|
||||||
switch (event->keyval) {
|
switch (event->keyval) {
|
||||||
case GDK_Left:
|
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;
|
handled = TRUE;
|
||||||
break;
|
break;
|
||||||
case GDK_Right:
|
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;
|
handled = TRUE;
|
||||||
break;
|
break;
|
||||||
case GDK_Up:
|
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;
|
handled = TRUE;
|
||||||
break;
|
break;
|
||||||
case GDK_Down:
|
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;
|
handled = TRUE;
|
||||||
break;
|
break;
|
||||||
case GDK_Tab:
|
case GDK_Tab:
|
||||||
|
@ -294,6 +294,28 @@ object_move(Object_t *obj, gint dx, gint dy)
|
|||||||
object_emit_geometry_signal(obj);
|
object_emit_geometry_signal(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
object_move_sash(Object_t *obj, gint dx, gint dy)
|
||||||
|
{
|
||||||
|
gint x, y, width, height;
|
||||||
|
obj->class->get_dimensions(obj, &x, &y, &width, &height);
|
||||||
|
if (dx == 0)
|
||||||
|
x += (width / 2);
|
||||||
|
else
|
||||||
|
x += width;
|
||||||
|
|
||||||
|
if (dy == 0)
|
||||||
|
y += (height / 2);
|
||||||
|
else
|
||||||
|
y += height;
|
||||||
|
|
||||||
|
MoveSashFunc_t sash_func = obj->class->near_sash(obj, x, y);
|
||||||
|
if (sash_func) {
|
||||||
|
sash_func(obj, dx, dy);
|
||||||
|
object_emit_geometry_signal(obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
object_remove(Object_t *obj)
|
object_remove(Object_t *obj)
|
||||||
{
|
{
|
||||||
@ -927,6 +949,17 @@ object_list_send_to_back(ObjectList_t *list)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
object_list_move_sash_selected(ObjectList_t *list, gint dx, gint dy)
|
||||||
|
{
|
||||||
|
GList *p;
|
||||||
|
for (p = list->list; p; p = p->next) {
|
||||||
|
Object_t *obj = (Object_t*) p->data;
|
||||||
|
if (obj->selected)
|
||||||
|
object_move_sash(obj, dx, dy);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
write_xml_attrib(const gchar *attrib, const gchar *value,
|
write_xml_attrib(const gchar *attrib, const gchar *value,
|
||||||
const gchar *default_text, gpointer param,
|
const gchar *default_text, gpointer param,
|
||||||
|
@ -93,6 +93,7 @@ void object_edit(Object_t *obj, gboolean add);
|
|||||||
void object_select(Object_t *obj);
|
void object_select(Object_t *obj);
|
||||||
void object_unselect(Object_t *obj);
|
void object_unselect(Object_t *obj);
|
||||||
void object_move(Object_t *obj, gint dx, gint dy);
|
void object_move(Object_t *obj, gint dx, gint dy);
|
||||||
|
void object_move_sash(Object_t *obj, gint dx, gint dy);
|
||||||
void object_remove(Object_t *obj);
|
void object_remove(Object_t *obj);
|
||||||
void object_lock(Object_t *obj);
|
void object_lock(Object_t *obj);
|
||||||
void object_unlock(Object_t *obj);
|
void object_unlock(Object_t *obj);
|
||||||
@ -200,6 +201,7 @@ void object_list_move_selected_up(ObjectList_t *list);
|
|||||||
void object_list_move_selected_down(ObjectList_t *list);
|
void object_list_move_selected_down(ObjectList_t *list);
|
||||||
void object_list_move_to_front(ObjectList_t *list);
|
void object_list_move_to_front(ObjectList_t *list);
|
||||||
void object_list_send_to_back(ObjectList_t *list);
|
void object_list_send_to_back(ObjectList_t *list);
|
||||||
|
void object_list_move_sash_selected(ObjectList_t *list, gint dx, gint dy);
|
||||||
|
|
||||||
void object_list_write_csim(ObjectList_t *list, gpointer param,
|
void object_list_write_csim(ObjectList_t *list, gpointer param,
|
||||||
OutputFunc_t output);
|
OutputFunc_t output);
|
||||||
|
Reference in New Issue
Block a user