Bug 87274

Summary: Cycling trough konsole tabs with keyboard (shift arrow) causes terminal size to be printed on screen every time.
Product: [Applications] konsole Reporter: Marko Eha <galen>
Component: generalAssignee: Konsole Developer <konsole-devel>
Status: RESOLVED FIXED    
Severity: normal CC: michal, news
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Debian testing   
OS: Linux   
Latest Commit: Version Fixed In:
Attachments: disallow 'resize' when switching tabs
When switching tabs only update font menu

Description Marko Eha 2004-08-15 23:14:35 UTC
Version:            (using KDE KDE 3.3.0)
Installed from:    Debian testing/unstable Packages
OS:                Linux

Switching between konsole tabs with keyboard shortcuts makes it show its window size every time which is kind of annoying. It does not happen when swiching between tabs with mouse.
Comment 1 Stephan Binner 2004-08-16 07:30:37 UTC
*** Bug 87066 has been marked as a duplicate of this bug. ***
Comment 2 Kurt Hindenburg 2004-08-18 18:27:11 UTC
Disable Settings->Configure Konsole->General->Show terminal size after resizing
Comment 3 Kurt Hindenburg 2004-08-18 18:35:48 UTC
Perhaps the config text should read 'Show terminal size after resizing or changing tabs via shortcuts'  Hmm, that's kinda long...
Comment 4 Waldo Bastian 2004-08-18 18:51:41 UTC
Switching tabs shouldn't cause a resize. It's a bug if it does. That you get the window size indicator is a symptom of the problem, it's not the cause.
Comment 5 Kurt Hindenburg 2004-08-18 20:26:30 UTC
On the surface, it appears that setFont is the cause of this in void Konsole::activateSession(TESession *s)

konsole: Konsole::activateSession before setFont
konsole: TEWidget::setVTfont()
konsole: TEWidget::fontChange()
konsole: TEWidget::propagateSize()
konsole: TEWidget::updateImageSize()
konsole: TESession::onContentSizeChange 531 804
konsole: TEmulation::onImageSizeChange()
konsole: Konsole::activateSession after setFont
konsole: Konsole::activateSession before setFont
konsole: TEWidget::setVTfont()
konsole: TEWidget::fontChange()
konsole: TEWidget::propagateSize()
konsole: TEWidget::updateImageSize()
konsole: TESession::onContentSizeChange 531 804
konsole: TEmulation::onImageSizeChange()
konsole: Konsole::activateSession after setFont

void TEWidget::setImage is where the resizing/info window popups from.

I'll look at this later.
Comment 6 Kurt Hindenburg 2004-08-19 17:28:53 UTC
Created attachment 7182 [details]
disallow 'resize' when switching tabs

When switching tabs, skip:
      selectBell->setCurrentItem(te->bellMode());
      setFont(se->fontNo());
      updateSchemaMenu();
Comment 7 Waldo Bastian 2004-08-19 17:49:56 UTC
Why do you think these calls *need* to be skipped?
And why do you think these calls *can* be skipped?

Seems to me that without e.g. the setFont(...) call, the menu does not indicate the currently active font correctly.
Comment 8 Kurt Hindenburg 2004-08-19 18:07:23 UTC
Yepper, well the problem is when setFont is called it causes the resize image/window.  See comment #5.
So basically, we should update menus for schema/bell/font without actually changing/configuring any of these... 

This was the only approach that I could come up with; it seems like there should be a better way of doing this.
Comment 9 Kurt Hindenburg 2004-08-19 19:27:50 UTC
Created attachment 7183 [details]
When switching tabs only update font menu

Having to compensate for menu separators is ridiculous... that needs fixed!!
Comment 10 Stephan Binner 2004-09-12 16:55:13 UTC
*** Bug 89341 has been marked as a duplicate of this bug. ***
Comment 11 Stephan Binner 2004-09-13 23:51:41 UTC
What about this?

--- TEWidget.cpp        1 Jun 2004 12:31:20 -0000       1.216
+++ TEWidget.cpp        13 Sep 2004 21:51:22 -0000
@@ -1011,7 +1011,7 @@ void TEWidget::updateImageSize()
   //NOTE: control flows from the back through the chest right into the eye.
   //      `emu' will call back via `setImage'.

-  resizing = true;
+  resizing = (oldlin!=lines) || (oldcol!=columns);
   emit changedContentSizeSignal(contentHeight, contentWidth); // expose resizeEvent
   resizing = false;
 }
Comment 12 Stephan Binner 2004-09-16 23:09:21 UTC
*** Bug has been marked as fixed ***.