fix up panning code, now backwards
This commit is contained in:
parent
18d25c3713
commit
aaf857d071
@ -70,7 +70,7 @@ class SketchWidget:
|
||||
if not gldrawable.gl_begin(glcontext): return
|
||||
|
||||
x, y, width, height = glarea.get_allocation()
|
||||
self.size = (width, height)
|
||||
self.size = (float(width), float(height))
|
||||
|
||||
glViewport(0, 0, width, height)
|
||||
glMatrixMode(GL_PROJECTION)
|
||||
@ -114,19 +114,17 @@ class SketchWidget:
|
||||
def ptToScreenPt(self, pt):
|
||||
return ((pt[0] - self.view_center[0]) / self.view_width * self.size[0]
|
||||
+ self.size[0] / 2,
|
||||
(pt[1] - self.view_center[1]) /
|
||||
(self.view_width * self.size[1] / self.size[0])
|
||||
* self.size[1] + self.size[1] / 2)
|
||||
(pt[1] - self.view_center[1]) / self.view_width * self.size[0]
|
||||
+ self.size[1] / 2)
|
||||
|
||||
def distToScreenDist(self, dist):
|
||||
return dist / self.view_width * self.size[0]
|
||||
|
||||
def screenPtToPt(self, pt):
|
||||
return ((pt[0] - self.size[0]) / self.size[0] * self.view_width
|
||||
+ self.view_center[0] / 2,
|
||||
(pt[1] - self.size[1]) / self.size[1] *
|
||||
(self.view_width * self.size[1] / self.size[0])
|
||||
+ self.view_center[1] / 2)
|
||||
return ((pt[0] - self.size[0] / 2) / self.size[0] * self.view_width
|
||||
+ self.view_center[0],
|
||||
(pt[1] - self.size[1] / 2) / self.size[0] * self.view_width
|
||||
+ self.view_center[1])
|
||||
|
||||
def screenDistToDist(self, dist):
|
||||
return dist * self.size[0] / self.view_width
|
||||
@ -202,7 +200,7 @@ class SketchWidget:
|
||||
def button_press_event(self, widget, event, data = None):
|
||||
if event.button == 2:
|
||||
self.panning = True
|
||||
self.panning_start = (event.x, event.y)
|
||||
self.panning_start = (event.x, self.size[1] - event.y)
|
||||
|
||||
def button_release_event(self, widget, event, data = None):
|
||||
if event.button == 2:
|
||||
@ -211,10 +209,10 @@ class SketchWidget:
|
||||
def motion_event(self, widget, event, data = None):
|
||||
if self.panning:
|
||||
start_pt = self.screenPtToPt(self.panning_start)
|
||||
this_pt = self.screenPtToPt((event.x, event.y))
|
||||
this_pt = self.screenPtToPt((event.x, self.size[1] - event.y))
|
||||
self.view_center = (self.view_center[0] + this_pt[0] - start_pt[0],
|
||||
self.view_center[1] + this_pt[1] - start_pt[1])
|
||||
self.panning_start = (event.x, event.y)
|
||||
self.panning_start = (event.x, self.size[1] - event.y)
|
||||
self.widget.queue_draw_area(0, 0, self.size[0], self.size[1])
|
||||
|
||||
def scroll_event(self, widget, event, data = None):
|
||||
|
Loading…
x
Reference in New Issue
Block a user