Tdesktop: Set native windows frame

Created on 1 Feb 2017  ·  66Comments  ·  Source: telegramdesktop/tdesktop

Like into VK Messager

2017-02-01_22-33-40

That is will be nice for Windows 7, 8, 10

It is better

2017-02-01_22-35-37

then this

2017-02-01_22-36-14

windows

Most helpful comment

Starting with the 2.1.14 beta, Telegram window started implementing CSD and display its own titlebar on my KDE Plasma based Linux distro. Now instead of displaying the titlebar drawn by KWin, it is displaying a narrower imitation of ugly Windows 10-ish titlebar.

image

The current implementation has the following problems:

  • Telegram's borders and titlebar do not follow KWin theme; as a result Telegram stands out from all the other windows with an inferior theme. The Telegram CSD is missing all aesthetics that are provided by KWin theme (window control buttons' style, window shadows, etc).
  • Is the window active or not? It is impossible distinguish; the titlebar is always painted with the inactive titlebar color (light gray). In the screenshot above, Kate is an inactive window and its titlebar is painted light gray. Although Telegram is the active window, its titlebar is also painted light gray (instead of dark gray as provided by the system-wide KDE Plasma theme).
  • Window title is not displayed.
  • Since Telegram is no longer using KWin's decorations, it is impossible to move/reorder the window control buttons or add additional buttons as "Keep above".
  • Telegram CSD provides no customization options as provided by the native window manager. It is impossible to imitate KWin theme in Telegram CSD.

In many senses, the new CSD implementation is inferior than what native window managers had always offered so far and causes an unpleasant user experience. Please add an option to turn on and off CSD in Telegram and let window managers to handle things out of Telegram's business if and when desired.

All 66 comments

Only as option. To my mind, Telegram window looks OK with present frame. However the user should have a choice. 🤔

@liquidplace You can press Ctrl+W, it closes the window with minimizing to tray. Ctrl+M will minimize the window (leaving the icon in taskbar) and Ctrl+Q will quit the app.

you can allways right click over bar and http://i.imgur.com/VkvKVEu.png

A much bigger issue than the bar being small is that it doesn't show difference between focused and unfocused window.

@ralesk this is more theming issue since title bar colors are now separated (focused/unfocused states)

@MasterGroosha Ah, back in the day when window managers did that for you... :)

this is needed for small sized windows tables, click on the buttons is hard on a sub 10" tablet.

I agree, there should be that option. I really hate when apps force their themes into UI elements like title bar.

The Close, minimize and maximize buttons are too small on my computer, I can barely click them. If I increase the interface scale, then text and all other things become too big!

@pedrogarcia That's #2818 :)

I would like to see this too. I'm not a fan of ugly borderless Win8 themes and when tdesktop sits alongside other native Windows 7 applications, it looks out of place and ugly. Applications should always respect the OS' native look-and-feel unless there's a very good reason not to. Please don't copy Microsoft's double-standards with its own recent updates.

I agree, it would be an option like use custom notifications or use native notifications.

I agree! I don't like apps, that implements their own window title bars. Why on Linux and MacOS there is no problem with that?

@ImagoPL I have custom colored title bar on macOS as well.

@john-preston oh, so - why on Linux there is no problem? 😄

The problem is not the color. That window bar is too thin, the buttons are really small.

@navossoc Yeah, this is truly the main problem. But I think there should be an option - display native title bar or themed by app.

@navossoc It has similar size to the one on macOS.

@john-preston But it's smaller than the Windows' one.

btw discord seems to use same frame :)

Any updates on this? I'd really like to see native (Windows-)UI look and behaviour.

@readonly24 I don't think this issue is being considered important. Native frame is being asked for over an year, but still there's no sign of it being implemented, and that's sad :(

@ajyotirmay I still hope someone takes care of this soon.

I was hoping, that the new version includes a solution, but we still have this ugly, themed frame.

Devs, is it so hard to implement this?

@readonly24 the only thing that comes to my mind is, "they don't want to implement this feature request" :(

Please keep discussion on topic.

How much would it cost to pay a developer to implement native Windows controls? We could crowdfound it...

@readonly24 I highly doubt that developer needs money and/or has enough free time to work on this.

Must have feature. Non-standard frame is really buggy, especially its shadow. Sometimes the shadow is visible when the window is not visible. Sometimes the window is visible, but the shadow is invisible. Also it doesn't respect system setting which disables window shadows.

issue #2818 states that windows can't set a customized color for title bar is a reason preventing native design, but Chrome achieved this but drawing the title bar that accords w/ windows 10 design by itself.

It's OK if Telegram doesn't change color of native title bar. It would be much better anyway.

In the recent version, my computer application sometimes has problems like this
image

Non-native window frame with taskbar autohiding enabled makes it impossible to activate the taskbar
with telegram maximized.
I consider it a bug.

On my machine with Windows Classic theme it often looks like this:

Screenshot

Or like this:

Screenshot

Windows tries to render proper window frame, but Telegram actively resists. The worst implementation of non-standard window frame ever =)

This is important to have since there are many desktop customization utilities that rely on the standard windows frame to trigger macros when left,right,middle-clicking frame elements (app icon, minimize, maximize, close), or add new items to system menu.

Must have feature. Non-standard frame is really buggy, especially its shadow. Sometimes the shadow is visible when the window is not visible. Sometimes the window is visible, but the shadow is invisible. Also it doesn't respect system setting which disables window shadows.

I have the same issues, really annoying. I really don't like this small window titlebar. If Telegram devs really don't like to implement Windows native titlebars, maybe only implement window controls like it's in Messenger desktop app?

image

actually I think they "unimplemented" the default window frame.

@liquidplace可以按Ctrl + W,它将关闭窗口并最小化到托盘。Ctrl + M将最小化窗口(将图标保留在任务栏中),而Ctrl + Q将退出应用程序。

这些快捷键 从哪里可以看到详细的?

@liquidplace did you just delete your post? Can't find it. @lbcake see the wiki

Yes i did, sorry. I only stated that this tiny button is hard to click.

I guess lbcake was not replying to me, he misquoted another reply:
https://github.com/telegramdesktop/tdesktop/issues/2958#issuecomment-277196937

Starting with the 2.1.14 beta, Telegram window started implementing CSD and display its own titlebar on my KDE Plasma based Linux distro. Now instead of displaying the titlebar drawn by KWin, it is displaying a narrower imitation of ugly Windows 10-ish titlebar.

image

The current implementation has the following problems:

  • Telegram's borders and titlebar do not follow KWin theme; as a result Telegram stands out from all the other windows with an inferior theme. The Telegram CSD is missing all aesthetics that are provided by KWin theme (window control buttons' style, window shadows, etc).
  • Is the window active or not? It is impossible distinguish; the titlebar is always painted with the inactive titlebar color (light gray). In the screenshot above, Kate is an inactive window and its titlebar is painted light gray. Although Telegram is the active window, its titlebar is also painted light gray (instead of dark gray as provided by the system-wide KDE Plasma theme).
  • Window title is not displayed.
  • Since Telegram is no longer using KWin's decorations, it is impossible to move/reorder the window control buttons or add additional buttons as "Keep above".
  • Telegram CSD provides no customization options as provided by the native window manager. It is impossible to imitate KWin theme in Telegram CSD.

In many senses, the new CSD implementation is inferior than what native window managers had always offered so far and causes an unpleasant user experience. Please add an option to turn on and off CSD in Telegram and let window managers to handle things out of Telegram's business if and when desired.

Okay, this is very upsetting now. I don't even think maintainers or devs are even being considerate or polite at this point. There have been no official acknowledgement of this issue, it's been 3 years since this issue was opened, and now they've even started to bring the same awful and widely rejected design to Linux, throwing logic right out the freaking window!

Telegram's borders and titlebar do not follow KWin theme

It's ok since they follow Telegram theme. It's strange if you have titlebar in one style and content in another. KWin decorations are good for applications that are using system widgets, but for custom widgets, custom titlebar fit better.

Window title is not displayed.

Telegram has not so much helpful information in the window title...

it is impossible to move/reorder the window control buttons or add additional buttons as "Keep above".

Is there any API that Telegram can use to get the configured controls from KWin?

It is impossible to imitate KWin theme in Telegram CSD.

:

these days everybody wants to do their own window frame rendering, but telegram does it for no purpose other than changing the colors... ? at least browsers do so to put the tabs in the title bar

this is a problem for both windows and linux. this thing kills interoperability with various utility software and even standard system functions like right click the title bar for the context menu of the window on windows.

a toggle for native window frame in the settings would've been an easy fix 😐

a toggle for native window frame in the settings would've been an easy fix

As far as I know, core devs really hate adding new options... For example, for people from #897 it's took 5 years to get an option to disable bouncing icon. People from #2060 were asking an option to make bubbles adaptive for 4 years, someone made a PR #7822 and... they got bubble extending on code blocks and the PR was closed because it adds an option.

Asking an option is the best way to make your issue ignorable here :see_no_evil:

Moreover, as far as I know, any UI things can be changed only by some designers from the telegram team. I.e. making issues that are asking to change something in the UI is an another way to make it just ignored, since even core devs doesn't have any right to change that...

Asking an option is the best way to make your issue ignorable here

The best way for the user is not to use an inconvenient program with many problems, with non-standard appearance and behavior, with the developers ignoring the requests and requirements of users.
When the number of users is reduced to 10 people, low-professional and ignoring constructive criticism programmers will be fired.
This is not the only bug that has been ignored for several years. And this is not the only bug that would not even have appeared if the programmers had a high professional level.

best way is to fork, actually; but it is a big hassle to maintain and recompile everything...

And then maintain the fork? Ain't nobody got time for that.

(there are already forks, including with native frame option, but not sure if it is a good idea talking about that here)

it is a good idea. it's not like they will censor you: any such reaction would result in a terrible p.r. lol
beside o.s. software is meant to be forked

Here's actual open source forks that I can remember now (unsorted):
https://github.com/TDesktop-x64/tdesktop
https://github.com/Sea-n/tdesktop
https://github.com/kotatogram/kotatogram-desktop (that one I contributing to, too)

@ilya-fedin I agree with your points, and certainly no one can help with the core beliefs of the team, but doesn't it make no sense at all to have one more maintainable section of code (custom titlebar) that actually serves no purpose and ruins the UX big time.

It's not just about not integrating with the OS well, but Linux concern has only been raised recently. The actual issue with this whole design choice was that the buttons are tiny, compared to what action buttons Windows offers. So tiny that you actually need to pay attention as to where your cursor is going.

Not a clue why this decision was even taken in the first place, because everything has only improved with every release of the app, except for the title bar.

And thanks for taking out your time for this discussion. It's actually nice to hear from someone who's actually participating in the development of the app.

The actual issue with this whole design choice was that the buttons are tiny, compared to what action buttons Windows offers.

There are #5434 opened for two years, but it is a no-go because it is not pixel perfect :(

Some googling gave me that there are some API to customize native titlebar on Windows, but I don't have enough skills with WinAPI to colour native titlebar with that API :(

[some API to customize native titlebar on Windows]

No WinAPI is needed at all to make the window look standard and normal. The operating system itself should normally draw a window. This is the responsibility of the operating system.

In my opinion, an application should not apply any window styles at all. If the user wants to change the appearance of the window elements, he will do this through the settings of the operating system. And then the windows of all applications will change. All windows of all applications will look uniform and standard.

No WinAPI is needed at all to make the window look standard and normal.

WinAPI is needed to colour the native titlebar, so that core devs may accept a change

No WinAPI is needed at all to make the window look standard and normal.

WinAPI is needed to colour the native titlebar, so that core devs may accept a change

which is bad ux and should have its own toggle 🤦

Does anyone have experience working with Qt and QML? I'm considering diving into the code and see if it's something that I can fix by myself. At this point, I don't think core devs/maintainers are actually considering this a serious UX issue. I'm not even sure if they're using this on particular systems that's affected by these choices.

@john-preston thanks for fixing this!

Q: Is their any way to make a donation for this project?

I'm glad to know that this option was added. Thank you!

Thank you!

Hmm. On Windows 10, it looks like once you switch to full screen, the native bar is suddenly narrower and the OS default is altered in some way again?!

@tooomm it's standard Windows 10 behavior for non-UWP windows.

Ok, that's interesting. Firefox, Chromium, Word etc. all keep the size of the bar. But Windows File Explorer shows the same pattern as Telegramm.

@tooomm becuase Firefox, Chromium and Word render own (non-standard) frame.

I'm glad this was finally fixed.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ghost picture ghost  ·  3Comments

Mindstormer619 picture Mindstormer619  ·  3Comments

LeonTheOriginal picture LeonTheOriginal  ·  3Comments

luisalvarado picture luisalvarado  ·  3Comments

JhonSane picture JhonSane  ·  3Comments