Commit d38d8a2c authored by dmMaze's avatar dmMaze
Browse files

clear canvas states on windows activation changed

parent f6e39e3a
Loading
Loading
Loading
Loading
+16 −14
Original line number Diff line number Diff line
@@ -2,12 +2,11 @@ import numpy as np
from typing import List, Union, Tuple

from qtpy.QtWidgets import QMenu, QGraphicsScene, QGraphicsView, QGraphicsRectItem, QGraphicsItem, QScrollBar, QGraphicsPixmapItem, QGraphicsSceneMouseEvent, QGraphicsSceneContextMenuEvent, QRubberBand
from qtpy.QtCore import Qt, QDateTime, QRectF, QPointF, QPoint, Signal, QSizeF, QObject, QEvent
from qtpy.QtGui import QPixmap, QHideEvent, QKeyEvent, QWheelEvent, QResizeEvent, QKeySequence, QPainter, QPen, QPainterPath
from qtpy.QtCore import Qt, QDateTime, QRectF, QPointF, QPoint, Signal, QSizeF, QEvent
from qtpy.QtGui import QPixmap, QHideEvent, QKeyEvent, QWheelEvent, QResizeEvent, QPainter, QPen, QPainterPath

try:
    from qtpy.QtWidgets import QUndoStack, QUndoCommand

except:
    from qtpy.QtGui import QUndoStack, QUndoCommand

@@ -25,7 +24,6 @@ CANVAS_SCALE_MIN = 0.1
CANVAS_SCALE_SPEED = 0.1

class CustomGV(QGraphicsView):
    do_scale = True
    ctrl_pressed = False
    scale_up_signal = Signal()
    scale_down_signal = Signal()
@@ -37,7 +35,6 @@ class CustomGV(QGraphicsView):
        # qgraphicsview always scroll content according to wheelevent
        # which is not desired when scaling img
        if event.modifiers() == Qt.KeyboardModifier.ControlModifier:
            if self.do_scale:
            if event.angleDelta().y() > 0:
                self.scale_up_signal.emit()
            else:
@@ -61,9 +58,6 @@ class CustomGV(QGraphicsView):
        return super().resizeEvent(event)

    def hideEvent(self, event: QHideEvent) -> None:
        self.leftbtn_pressed = False
        self.do_scale = True
        self.ctrl_pressed = False
        self.hide_canvas.emit()
        return super().hideEvent(event)

@@ -499,11 +493,18 @@ class Canvas(QGraphicsScene):
                self.layout_textblks.emit()
    
    def on_hide_canvas(self):
        self.clear_states()

    def on_activation_changed(self):
        self.clear_states()

    def clear_states(self):
        self.alt_pressed = False
        self.scale_tool_mode = False
        self.creating_textblock = False
        self.create_block_origin = None
        self.editing_textblkitem = None
        self.gv.ctrl_pressed = False
        if self.stroke_img_item is not None:
            self.removeItem(self.stroke_img_item)

@@ -594,3 +595,4 @@ class Canvas(QGraphicsScene):
        self.disconnect()
        self.text_undo_stack.disconnect()
        self.draw_undo_stack.disconnect()
+3 −1
Original line number Diff line number Diff line
@@ -335,9 +335,11 @@ class MainWindow(FramelessWindow):
        return super().closeEvent(event)

    def changeEvent(self, event: QEvent):
        if event.type() == QEvent.WindowStateChange:
        if event.type() == QEvent.Type.WindowStateChange:
            if self.windowState() & Qt.WindowState.WindowMaximized:
                self.titleBar.maxBtn.setChecked(True)
        elif event.type() == QEvent.Type.ActivationChange:
            self.canvas.on_activation_changed()
        super().changeEvent(event)

    def save_config(self):