From a7d22c48b45d35cca21077e6f223fb62f232b878 Mon Sep 17 00:00:00 2001 From: kojima Date: Sat, 6 Jan 2001 17:43:18 +0000 Subject: [PATCH] added item copying to menu editor in wprefs --- ChangeLog | 1 + WPrefs.app/Menu.c | 1 + WPrefs.app/editmenu.c | 16 ++++++++-------- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index c34325c1..a4a462ea 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,7 @@ Changes since version 0.63.0: - fixed compile prob with SGI compiler - decreased nice() value in wmsetbg - applied gnome panel not-covering patch from (Bastien Nocera ) +- added item copy to WPrefs menu editor Changes since version 0.62.1: ............................. diff --git a/WPrefs.app/Menu.c b/WPrefs.app/Menu.c index 842a6fca..369d1936 100644 --- a/WPrefs.app/Menu.c +++ b/WPrefs.app/Menu.c @@ -850,6 +850,7 @@ createPanel(_Panel *p) " - drag items from the left to the menu to add new items\n" " - drag items out of the menu to remove items\n" " - drag items in menu to change their position\n" + " - drag items with Control pressed to copy them\n" " - double click in a menu item to change the label\n" " - click on a menu item to change related information")); WMMapWidget(label); diff --git a/WPrefs.app/editmenu.c b/WPrefs.app/editmenu.c index 38a1bca0..1839b2eb 100644 --- a/WPrefs.app/editmenu.c +++ b/WPrefs.app/editmenu.c @@ -1334,7 +1334,7 @@ duplicateMenu(WEditMenu *menu) static void -dragItem(WEditMenu *menu, WEditMenuItem *item) +dragItem(WEditMenu *menu, WEditMenuItem *item, Bool copy) { static XColor black = {0, 0,0,0, DoRed|DoGreen|DoBlue}; static XColor green = {0x0045b045, 0x4500,0xb000,0x4500, DoRed|DoGreen|DoBlue}; @@ -1377,7 +1377,7 @@ dragItem(WEditMenu *menu, WEditMenuItem *item) W_MoveView(dview, orix, oriy); W_RealizeView(dview); - if (menu->flags.isFactory) { + if (menu->flags.isFactory || copy) { dritem = duplicateItem(item); W_ReparentView(dritem->view, dview, 0, 0); @@ -1449,7 +1449,7 @@ dragItem(WEditMenu *menu, WEditMenuItem *item) if (!enteredMenu) { Bool rem = True; - if (!menu->flags.isFactory) { + if (!menu->flags.isFactory && !copy) { W_UnmapView(dview); if (menu->delegate && menu->delegate->shouldRemoveItem) { rem = (*menu->delegate->shouldRemoveItem)(menu->delegate, @@ -1458,10 +1458,10 @@ dragItem(WEditMenu *menu, WEditMenuItem *item) W_MapView(dview); } - if (!rem || menu->flags.isFactory) { + if (!rem || menu->flags.isFactory || copy) { slideWindow(dpy, W_VIEW_DRAWABLE(dview), x-dx, y-dy, orix, oriy); - if (!menu->flags.isFactory) { + if (!menu->flags.isFactory && !copy) { WRemoveEditMenuItem(menu, dritem); handleItemDrop(dmenu ? dmenu : menu, dritem, orix, oriy); } @@ -1472,14 +1472,14 @@ dragItem(WEditMenu *menu, WEditMenuItem *item) WRemoveEditMenuItem(menu, dritem); if (menu->delegate && menu->delegate->itemCloned - && menu->flags.isFactory) { + && (menu->flags.isFactory || copy)) { (*menu->delegate->itemCloned)(menu->delegate, menu, item, dritem); } handleItemDrop(dmenu, dritem, x-dy, y-dy); - if (item->submenu && menu->flags.isFactory) { + if (item->submenu && (menu->flags.isFactory || copy)) { WEditMenu *submenu; submenu = duplicateMenu(item->submenu); @@ -1524,7 +1524,7 @@ handleItemClick(XEvent *event, void *data) if (abs(event->xbutton.x_root - menu->dragX) > 5 || abs(event->xbutton.y_root - menu->dragY) > 5) { menu->flags.isDragging = 0; - dragItem(menu, item); + dragItem(menu, item, event->xbutton.state & ControlMask); } } break;