@@ -52,6 +52,9 @@ export class ShellWindow {
5252
5353 was_attached_to ?: [ Entity , boolean ] ;
5454
55+ // True if this window is currently smart-gapped
56+ smart_gapped : boolean = false ;
57+
5558 private was_hidden : boolean = false ;
5659
5760 private window_app : any ;
@@ -62,7 +65,7 @@ export class ShellWindow {
6265 xid_ : new OnceCell ( )
6366 } ;
6467
65- private _border : St . Bin = new St . Bin ( { style_class : 'pop-shell-active-hint' } ) ;
68+ private _border : St . Bin = new St . Bin ( { style_class : 'pop-shell-active-hint pop-shell-border-normal ' } ) ;
6669
6770 private _border_size = 0 ;
6871
@@ -181,6 +184,15 @@ export class ShellWindow {
181184 return this . meta . get_maximized ( ) !== 0 ;
182185 }
183186
187+ /**
188+ * Window is maximized, 0 gapped or smart gapped
189+ */
190+ is_max_screen ( ) : boolean {
191+ // log.debug(`title: ${this.meta.get_title()}`);
192+ // log.debug(`max: ${this.is_maximized()}, 0-gap: ${this.ext.settings.gap_inner() === 0}, smart: ${this.smart_gapped}`);
193+ return this . is_maximized ( ) || this . ext . settings . gap_inner ( ) === 0 || this . smart_gapped ;
194+ }
195+
184196 is_tilable ( ext : Ext ) : boolean {
185197 return ! ext . contains_tag ( this . entity , Tags . Floating )
186198 && ext . tilable . get_or ( this . entity , ( ) => {
@@ -302,9 +314,8 @@ export class ShellWindow {
302314 show_border ( ) {
303315 if ( this . ext . settings . active_hint ( ) ) {
304316 let border = this . _border ;
305- if ( ! this . is_maximized ( ) &&
317+ if ( ! this . meta . is_fullscreen ( ) &&
306318 ! this . meta . minimized &&
307- ! this . meta . is_fullscreen ( ) &&
308319 this . same_workspace ( ) ) {
309320 border . show ( ) ;
310321 }
@@ -384,7 +395,8 @@ export class ShellWindow {
384395
385396 hide_border ( ) {
386397 let border = this . _border ;
387- border . hide ( ) ;
398+ if ( border )
399+ border . hide ( ) ;
388400 }
389401
390402 private _update_border_layout ( ) {
@@ -394,8 +406,15 @@ export class ShellWindow {
394406 let border = this . _border ;
395407 let borderSize = this . _border_size ;
396408
409+ if ( ! this . is_max_screen ( ) ) {
410+ border . remove_style_class_name ( 'pop-shell-border-maximize' ) ;
411+ } else {
412+ borderSize = 0 ;
413+ border . add_style_class_name ( 'pop-shell-border-maximize' ) ;
414+ }
415+
397416 border . set_position ( frameX - borderSize , frameY - borderSize ) ;
398- border . set_size ( frameWidth + 2 * borderSize , frameHeight + 2 * borderSize ) ;
417+ border . set_size ( frameWidth + ( 2 * borderSize ) , frameHeight + ( 2 * borderSize ) ) ;
399418
400419 this . restack ( ) ;
401420 }
0 commit comments