Version: 1.6 (using KDE KDE 3.5.5) Installed from: Debian testing/unstable Packages OS: Linux Steps to reproduce: - Select the text tool - Click somewhere into the image using a stylus Current behaviour: - Krita opens a lot of windows, in most cases does not stop producing new windows. This normally has the result of completely freezing graphical system. Expected behaviour: - Krita should not do this. ;-)
Note: this is a regression; with version 1.5.2 it did not produce more than one window.
SVN commit 599736 by berger: fix the text tool going made when use with the tablet in 1.6, don't close the bug as we might want a better solution for 2.0 CCBUG:136151 M +2 -2 kis_tool_fill.cc M +11 -1 kis_tool_text.cc M +2 -0 kis_tool_text.h --- branches/koffice/1.6/koffice/krita/plugins/tools/defaulttools/kis_tool_fill.cc #599735:599736 @@ -143,11 +143,11 @@ void KisToolFill::buttonRelease(KisButtonReleaseEvent *e) { - if(!m_wasPressed) return; - m_wasPressed = false; if (!m_subject) return; if (!m_currentImage || !m_currentImage->activeDevice()) return; if (e->button() != QMouseEvent::LeftButton) return; + if(!m_wasPressed) return; + m_wasPressed = false; int x, y; x = m_startPos.floorX(); y = m_startPos.floorY(); --- branches/koffice/1.6/koffice/krita/plugins/tools/defaulttools/kis_tool_text.cc #599735:599736 @@ -45,12 +45,13 @@ #include "kis_tool_text.h" #include "kis_paint_device.h" #include "kis_canvas_subject.h" +#include "kis_button_press_event.h" #include "kis_button_release_event.h" #include "kis_color.h" #include "kis_undo_adapter.h" KisToolText::KisToolText() - : super(i18n("Text")) + : super(i18n("Text")), m_wasPressed(false) { setName("tool_text"); m_subject = 0; @@ -67,9 +68,18 @@ super::update(subject); } +void KisToolText::buttonPress(KisButtonPressEvent *e) +{ + if (m_subject && e->button() == QMouseEvent::LeftButton) { + m_wasPressed = true; + } +} + void KisToolText::buttonRelease(KisButtonReleaseEvent *e) { if (m_subject && e->button() == QMouseEvent::LeftButton) { + if(!m_wasPressed) return; + m_wasPressed = false; KisImageSP img = m_subject->currentImg(); bool ok; --- branches/koffice/1.6/koffice/krita/plugins/tools/defaulttools/kis_tool_text.h #599735:599736 @@ -43,6 +43,7 @@ virtual void setup(KActionCollection *collection); virtual enumToolType toolType() { return TOOL_FILL; } virtual Q_UINT32 priority() { return 2; } + virtual void buttonPress(KisButtonPressEvent*); virtual void buttonRelease(KisButtonReleaseEvent *e); virtual QWidget* createOptionWidget(QWidget* parent); @@ -55,6 +56,7 @@ QLabel *m_lbFont; KSqueezedTextLabel *m_lbFontName; QPushButton *m_btnMoreFonts; + bool m_wasPressed; // use for preventing bug:136151 };
Krita still produces a new window each time touching and releasing even if there's already a window, but this is no grave problem anymore.
This is fixed too; I'm closing this bug since the text tool will be gone in 2.0, where we'll be using the flake text shape instead.
You need to log in before you can comment on or make changes to this bug.