From cfbc6a511caaf1e5d91f478cc7bfcbeb47f2101d Mon Sep 17 00:00:00 2001 From: Ilia Popov Date: Tue, 14 Sep 2010 01:35:47 +0200 Subject: [PATCH] Fixed a bug with crash if pressed any key in batch queue panel; some minor code changes to shortcut keys handling --- rtgui/filecatalog.cc | 72 +++++++++++++++++++------------------------- rtgui/rtwindow.cc | 5 +-- 2 files changed, 34 insertions(+), 43 deletions(-) diff --git a/rtgui/filecatalog.cc b/rtgui/filecatalog.cc index f5a996ef6..2f62cf6fd 100644 --- a/rtgui/filecatalog.cc +++ b/rtgui/filecatalog.cc @@ -914,6 +914,37 @@ bool FileCatalog::handleShortcutKey (GdkEventKey* event) { bool ctrl = event->state & GDK_CONTROL_MASK; bool shift = event->state & GDK_SHIFT_MASK; + modifierKey = event->state; + + switch(event->keyval) { + case GDK_1: + categoryButtonToggled(bRank[0]); + return true; + case GDK_2: + categoryButtonToggled(bRank[1]); + return true; + case GDK_3: + categoryButtonToggled(bRank[2]); + return true; + case GDK_4: + categoryButtonToggled(bRank[3]); + return true; + case GDK_5: + categoryButtonToggled(bRank[4]); + return true; + case GDK_grave: + categoryButtonToggled(bUnRanked); + return true; + case GDK_d: + case GDK_D: + categoryButtonToggled(bDir); + return true; + case GDK_t: + case GDK_T: + categoryButtonToggled(bTrash); + return true; + } + if (!ctrl) { switch(event->keyval) { case GDK_i: @@ -928,51 +959,10 @@ bool FileCatalog::handleShortcutKey (GdkEventKey* event) { case GDK_underscore: zoomOut(); return true; - case GDK_1: - categoryButtonToggled(bRank[0]); - return true; - case GDK_2: - categoryButtonToggled(bRank[1]); - return true; - case GDK_3: - categoryButtonToggled(bRank[2]); - return true; - case GDK_4: - categoryButtonToggled(bRank[3]); - return true; - case GDK_5: - categoryButtonToggled(bRank[4]); - return true; - case GDK_grave: - categoryButtonToggled(bUnRanked); - return true; - case GDK_d: - case GDK_D: - categoryButtonToggled(bDir); - return true; - case GDK_t: - case GDK_T: - categoryButtonToggled(bTrash); - return true; } } else { switch (event->keyval) { -// case GDK_s: -// saveAsPressed(); -// return true; -// case GDK_q: -// queueImgPressed(); -// return true; -// case GDK_e: -// sendToGimpPressed(); -// return true; -// case GDK_z: -// history->undo (); -// return true; -// case GDK_Z: -// history->redo (); -// return true; } } diff --git a/rtgui/rtwindow.cc b/rtgui/rtwindow.cc index becca32d7..a3166889d 100644 --- a/rtgui/rtwindow.cc +++ b/rtgui/rtwindow.cc @@ -162,8 +162,9 @@ bool RTWindow::keyPressed (GdkEventKey* event) { if (mainNB->get_current_page() == mainNB->page_num(*fpanel)) { return fpanel->handleShortcutKey (event); } -// else if (mainNB->get_nth_page (mainNB->get_current_page()) == bqpanel) { -// } + else if (mainNB->get_current_page() == mainNB->page_num(*bpanel)) { + return false; + } else { EditorPanel* ep = (EditorPanel*)mainNB->get_nth_page (mainNB->get_current_page()); return ep->handleShortcutKey (event);