From cdfa52e9edac0641de3ecdd56f801ca740cd67df Mon Sep 17 00:00:00 2001 From: Grange Nagy Date: Sat, 2 Dec 2023 21:53:31 -0500 Subject: [PATCH 1/4] remove drag rendering entirely for now --- gui/builtinShipBrowser/fitItem.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/gui/builtinShipBrowser/fitItem.py b/gui/builtinShipBrowser/fitItem.py index fad2e1819..5f4a34c5c 100644 --- a/gui/builtinShipBrowser/fitItem.py +++ b/gui/builtinShipBrowser/fitItem.py @@ -195,8 +195,9 @@ class FitItem(SFItem.SFBrowserItem): self.dragged = False if self.HasCapture(): self.ReleaseMouse() - self.dragWindow.Show(False) - self.dragWindow = None + # TODO: re-enable this once rendring of drag window is fixed + #self.dragWindow.Show(False) + #self.dragWindow = None def OnContextMenu(self, event): """ Handles context menu for fit. Dragging is handled by MouseLeftUp() """ @@ -418,9 +419,10 @@ class FitItem(SFItem.SFBrowserItem): if self.dragMotionTrigger < 0: if not self.HasCapture(): self.CaptureMouse() - self.dragWindow = PFBitmapFrame(self, pos, self.dragTLFBmp) - self.dragWindow.Show() - self.dragged = True + # self.dragWindow = PFBitmapFrame(self, pos, self.dragTLFBmp) + # TODO: re-enable this once rendring of drag window is fixed + #self.dragWindow.Show() + #self.dragged = True self.dragMotionTrigger = self.dragMotionTrail else: self.dragMotionTrigger -= 1 @@ -519,11 +521,12 @@ class FitItem(SFItem.SFBrowserItem): if self.tcFitName.IsShown(): self.AdjustControlSizePos(self.tcFitName, self.textStartx, self.toolbarx - self.editWidth - self.padding) - tdc = wx.MemoryDC() - self.dragTLFBmp = wx.Bitmap((self.toolbarx if self.toolbarx < 200 else 200), rect.height, 24) - tdc.SelectObject(self.dragTLFBmp) - tdc.Blit(0, 0, (self.toolbarx if self.toolbarx < 200 else 200), rect.height, mdc, 0, 0, wx.COPY) - tdc.SelectObject(wx.NullBitmap) + # TODO: migrate this away from a bitmap + #tdc = wx.MemoryDC() + #self.dragTLFBmp = wx.Bitmap((self.toolbarx if self.toolbarx < 200 else 200), rect.height, 24) + #tdc.SelectObject(self.dragTLFBmp) + #tdc.Blit(0, 0, (self.toolbarx if self.toolbarx < 200 else 200), rect.height, mdc, 0, 0, wx.COPY) + #tdc.SelectObject(wx.NullBitmap) def AdjustControlSizePos(self, editCtl, start, end): fnEditSize = editCtl.GetSize() From 193adc4ba5019f02dda8c5e12c7d604ac9851099 Mon Sep 17 00:00:00 2001 From: Grange Nagy Date: Sun, 3 Dec 2023 01:47:32 -0500 Subject: [PATCH 2/4] fix fit drag bitmap causing redraws on macos --- gui/builtinShipBrowser/fitItem.py | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/gui/builtinShipBrowser/fitItem.py b/gui/builtinShipBrowser/fitItem.py index 5f4a34c5c..272b65044 100644 --- a/gui/builtinShipBrowser/fitItem.py +++ b/gui/builtinShipBrowser/fitItem.py @@ -195,9 +195,8 @@ class FitItem(SFItem.SFBrowserItem): self.dragged = False if self.HasCapture(): self.ReleaseMouse() - # TODO: re-enable this once rendring of drag window is fixed - #self.dragWindow.Show(False) - #self.dragWindow = None + self.dragWindow.Show(False) + self.dragWindow = None def OnContextMenu(self, event): """ Handles context menu for fit. Dragging is handled by MouseLeftUp() """ @@ -417,12 +416,18 @@ class FitItem(SFItem.SFBrowserItem): if self.dragging: if not self.dragged: if self.dragMotionTrigger < 0: + if not self.dragTLFBmp: + tdc = wx.MemoryDC() + self.dragTLFBmp = wx.Bitmap(200, self.GetRect().height) + tdc.SelectObject(self.dragTLFBmp) + tdc.SetBrush(wx.Brush(wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW))) + tdc.DrawRectangle(0, 0, 200, self.GetRect().height) + self.DrawItem(tdc) if not self.HasCapture(): self.CaptureMouse() - # self.dragWindow = PFBitmapFrame(self, pos, self.dragTLFBmp) - # TODO: re-enable this once rendring of drag window is fixed - #self.dragWindow.Show() - #self.dragged = True + self.dragWindow = PFBitmapFrame(self, pos, self.dragTLFBmp) + self.dragWindow.Show() + self.dragged = True self.dragMotionTrigger = self.dragMotionTrail else: self.dragMotionTrigger -= 1 @@ -521,12 +526,6 @@ class FitItem(SFItem.SFBrowserItem): if self.tcFitName.IsShown(): self.AdjustControlSizePos(self.tcFitName, self.textStartx, self.toolbarx - self.editWidth - self.padding) - # TODO: migrate this away from a bitmap - #tdc = wx.MemoryDC() - #self.dragTLFBmp = wx.Bitmap((self.toolbarx if self.toolbarx < 200 else 200), rect.height, 24) - #tdc.SelectObject(self.dragTLFBmp) - #tdc.Blit(0, 0, (self.toolbarx if self.toolbarx < 200 else 200), rect.height, mdc, 0, 0, wx.COPY) - #tdc.SelectObject(wx.NullBitmap) def AdjustControlSizePos(self, editCtl, start, end): fnEditSize = editCtl.GetSize() From 718f9ef859e632960ca5f4ee9e564d67a8c6e47e Mon Sep 17 00:00:00 2001 From: Grange Nagy Date: Sun, 3 Dec 2023 02:18:51 -0500 Subject: [PATCH 3/4] allow fit drag bmp to be smaller --- gui/builtinShipBrowser/fitItem.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gui/builtinShipBrowser/fitItem.py b/gui/builtinShipBrowser/fitItem.py index 272b65044..d518b1aff 100644 --- a/gui/builtinShipBrowser/fitItem.py +++ b/gui/builtinShipBrowser/fitItem.py @@ -418,10 +418,11 @@ class FitItem(SFItem.SFBrowserItem): if self.dragMotionTrigger < 0: if not self.dragTLFBmp: tdc = wx.MemoryDC() - self.dragTLFBmp = wx.Bitmap(200, self.GetRect().height) + bmpWidth = self.toolbarx if self.toolbarx < 200 else 200 + self.dragTLFBmp = wx.Bitmap(bmpWidth, self.GetRect().height) tdc.SelectObject(self.dragTLFBmp) tdc.SetBrush(wx.Brush(wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW))) - tdc.DrawRectangle(0, 0, 200, self.GetRect().height) + tdc.DrawRectangle(0, 0, bmpWidth, self.GetRect().height) self.DrawItem(tdc) if not self.HasCapture(): self.CaptureMouse() From 451d21eaa0917580847edfe537607540721f4929 Mon Sep 17 00:00:00 2001 From: Grange Nagy Date: Sun, 3 Dec 2023 02:24:13 -0500 Subject: [PATCH 4/4] let go of drag object --- gui/builtinShipBrowser/fitItem.py | 1 + 1 file changed, 1 insertion(+) diff --git a/gui/builtinShipBrowser/fitItem.py b/gui/builtinShipBrowser/fitItem.py index d518b1aff..f641c3ddd 100644 --- a/gui/builtinShipBrowser/fitItem.py +++ b/gui/builtinShipBrowser/fitItem.py @@ -424,6 +424,7 @@ class FitItem(SFItem.SFBrowserItem): tdc.SetBrush(wx.Brush(wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW))) tdc.DrawRectangle(0, 0, bmpWidth, self.GetRect().height) self.DrawItem(tdc) + tdc.SelectObject(wx.NullBitmap) if not self.HasCapture(): self.CaptureMouse() self.dragWindow = PFBitmapFrame(self, pos, self.dragTLFBmp)