Skip to content

Commit 91f3152

Browse files
committed
Don't go past min distance on shift-zoom
1 parent 7d16dcc commit 91f3152

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

src/windows/views/zoom_slider.py

+18-8
Original file line numberDiff line numberDiff line change
@@ -297,10 +297,15 @@ def mouseMoveEvent(self, event):
297297
delta = (self.mouse_position - mouse_pos) / self.width()
298298
new_left_pos = self.scrollbar_position_previous[0] - delta
299299
is_left = True
300-
if int(QCoreApplication.instance().keyboardModifiers() & Qt.ShiftModifier) > 0 and \
301-
(self.scrollbar_position_previous[1] + delta) - new_left_pos > self.min_distance:
302-
# SHIFT key pressed (move both handles if we don't exceed min distance)
303-
new_right_pos = self.scrollbar_position_previous[1] + delta
300+
if int(QCoreApplication.instance().keyboardModifiers() & Qt.ShiftModifier) > 0:
301+
# SHIFT key pressed (move )
302+
if (self.scrollbar_position_previous[1] + delta) - new_left_pos > self.min_distance:
303+
#both handles if we don't exceed min distance
304+
new_right_pos = self.scrollbar_position_previous[1] + delta
305+
else:
306+
midpoint = (self.scrollbar_position_previous[1] + self.scrollbar_position_previous)/2
307+
new_right_pos = midpoint + (self.min_distance/2)
308+
new_left_pos = midpoint - (self.min_distance/2)
304309
else:
305310
new_right_pos = self.scrollbar_position_previous[1]
306311

@@ -317,10 +322,15 @@ def mouseMoveEvent(self, event):
317322
delta = (self.mouse_position - mouse_pos) / self.width()
318323
is_left = False
319324
new_right_pos = self.scrollbar_position_previous[1] - delta
320-
if int(QCoreApplication.instance().keyboardModifiers() & Qt.ShiftModifier) > 0 and \
321-
new_right_pos - (self.scrollbar_position_previous[0] + delta) > self.min_distance:
322-
# SHIFT key pressed (move both handles if we don't exceed min distance)
323-
new_left_pos = self.scrollbar_position_previous[0] + delta
325+
if int(QCoreApplication.instance().keyboardModifiers() & Qt.ShiftModifier) > 0:
326+
# SHIFT key pressed (move )
327+
if new_right_pos - (self.scrollbar_position_previous[0] + delta) > self.min_distance:
328+
#both handles if we don't exceed min distance
329+
new_left_pos = self.scrollbar_position_previous[0] + delta
330+
else:
331+
midpoint = (self.scrollbar_position_previous[1] + self.scrollbar_position_previous)/2
332+
new_right_pos = midpoint + (self.min_distance/2)
333+
new_left_pos = midpoint - (self.min_distance/2)
324334
else:
325335
new_left_pos = self.scrollbar_position_previous[0]
326336

0 commit comments

Comments
 (0)