Solving issue 735 : "Zooming with mouse wheel should zoom where the mouse is".
The scroll wheel is now used for scrolling the editor's tab content. If you want to change the spin button's/slider's value or combobox entry, press the SHIFT key while using the scroll wheel. This patch also: - reduce the spin buttons size (50px wide, instead of 70px) - reduce the minimum size of the combobox (tool panels can now be narrower before showing the horizontal scrollbar) Note to developers: ------------------- When creating GUI for editor tools, please use the MyComboBox, MyComboBoxText, MySpinButton and MyFileChooserButton derived class only in order to handle the scroll wheel properly (-> #include <guiutils.h>). Known bug: The MyFileChooserButton thas is a FILE_CHOOSER_ACTION_SELECT_FOLDER does not respond correctly to the new behaviour.
This commit is contained in:
@@ -220,11 +220,16 @@ bool ImageArea::on_scroll_event (GdkEventScroll* event) {
|
||||
|
||||
CropWindow* cw = getCropWindow (event->x, event->y);
|
||||
if (cw) {
|
||||
if (event->direction==GDK_SCROLL_UP)
|
||||
cw->zoomIn ();
|
||||
else
|
||||
cw->zoomOut ();
|
||||
return true;
|
||||
int newCenterX = (int)event->x;
|
||||
int newCenterY = (int)event->y;
|
||||
if (event->direction==GDK_SCROLL_UP && !cw->isMaxZoom()) {
|
||||
cw->findCenter (1, newCenterX, newCenterY);
|
||||
cw->zoomIn (true, newCenterX, newCenterY);
|
||||
}
|
||||
else if (!cw->isMinZoom()) {
|
||||
cw->findCenter (-1, newCenterX, newCenterY);
|
||||
cw->zoomOut (true, newCenterX, newCenterY);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
Reference in New Issue
Block a user