]> git.pld-linux.org Git - packages/AfterStep.git/commitdiff
- fix the sizing bug in Pager; from AfterStep CVS
authorKacper Kornet <draenog@pld-linux.org>
Tue, 1 Apr 2008 14:17:04 +0000 (14:17 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    AfterStep-2.2.8-Pager.c.patch -> 1.1

AfterStep-2.2.8-Pager.c.patch [new file with mode: 0644]

diff --git a/AfterStep-2.2.8-Pager.c.patch b/AfterStep-2.2.8-Pager.c.patch
new file mode 100644 (file)
index 0000000..ec32455
--- /dev/null
@@ -0,0 +1,191 @@
+--- src/Pager/Pager.c  2008-02-22 08:20:00.000000000 -0600
++++ src/Pager/Pager.c  2008-03-25 12:54:44.000000000 -0500
+@@ -105,7 +105,6 @@
+     int page_rows,  page_columns ;
+       /* x and y size of desktop */
+-      int vscaled_desk_width, vscaled_desk_height ;  /* calculated in accordance to Scale param in database */
+       int desk_width, desk_height ;                  /* adjusted for the size of title */
+       /* area of the main window used up by labels, borders and other garbadge :*/
+       int wasted_width, wasted_height ;
+@@ -395,6 +394,7 @@
+ /*****************************************************************************
+  * This routine is responsible for reading and parsing the config file
+  ****************************************************************************/
++
+ void
+ CheckConfigSanity()
+ {
+@@ -439,7 +439,7 @@
+     if (Config->geometry.width <= Config->columns )
+               clear_flags(Config->geometry.flags, WidthValue);
+     if (!get_flags(Config->geometry.flags, WidthValue) )
+-              Config->geometry.width = PagerState.vscaled_desk_width*Config->columns ;
++              Config->geometry.width = (PagerState.vscreen_width*Config->columns)/Scr.VScale ;
+       PagerState.desk_width = Config->geometry.width/Config->columns ;
+       Config->geometry.width = PagerState.desk_width*Config->columns ;
+@@ -447,11 +447,11 @@
+     if (Config->geometry.height <= Config->rows )
+               clear_flags(Config->geometry.flags, HeightValue);
+     if (!get_flags(Config->geometry.flags, HeightValue) || Config->geometry.height <= Config->rows )
+-              Config->geometry.height = PagerState.vscaled_desk_height*Config->rows ;
++              Config->geometry.height = (PagerState.vscreen_height*Config->rows)/Scr.VScale ;
+     PagerState.desk_height = Config->geometry.height/Config->rows ;
+     Config->geometry.height = PagerState.desk_height*Config->rows ;
+-
++      
+       PagerState.wasted_width = PagerState.wasted_height = 0 ;
+     if( !get_flags(Config->geometry.flags, XValue))
+@@ -701,9 +701,6 @@
+       PagerState.vscreen_width = Scr.VxMax + Scr.MyDisplayWidth;
+     PagerState.vscreen_height = Scr.VyMax + Scr.MyDisplayHeight;
+-    PagerState.vscaled_desk_width = PagerState.vscreen_width/Scr.VScale;
+-    PagerState.vscaled_desk_height = PagerState.vscreen_height/Scr.VScale;
+-
+     SHOW_TIME("BaseConfigParsingTime",started);
+     LOCAL_DEBUG_OUT("desk_size(%dx%d),vscreen_size(%dx%d),vscale(%d)", PagerState.desk_width, PagerState.desk_height, PagerState.vscreen_width, PagerState.vscreen_height, Scr.VScale );
+ }
+@@ -1031,7 +1028,7 @@
+ }
+-unsigned int
++inline unsigned int
+ calculate_desk_width( ASPagerDesk *d )
+ {
+     unsigned int width = PagerState.desk_width;
+@@ -1158,7 +1155,7 @@
+     if( wa )
+     {
+         register int p = PagerState.page_columns-1;
+-        int pos_inc = Scr.MyDisplayWidth/Scr.VScale;
++        int pos_inc = (Scr.MyDisplayWidth * d->background->width)/PagerState.vscreen_width;
+                               /* d->background->width/PagerState.page_columns ; */
+         int pos = d->background->win_x+p*pos_inc;
+         int size = d->background->height ;
+@@ -1177,7 +1174,8 @@
+         wa += PagerState.page_columns-1;
+         wrecta += PagerState.page_columns-1;
+         p = PagerState.page_rows-1;
+-        pos_inc = Scr.MyDisplayHeight/Scr.VScale;
++        pos_inc =  (Scr.MyDisplayHeight * d->background->height)/PagerState.vscreen_height;
++                  /* Scr.MyDisplayHeight/PagerState.vscale_v;     */
+                       /* d->background->height/PagerState.page_rows ; */
+         pos = d->background->win_y + p*pos_inc;
+         pos2 = d->background->win_x ;
+@@ -1206,8 +1204,10 @@
+               {
+                       int sel_x = sel_desk->background->win_x ;
+               int sel_y = sel_desk->background->win_y ;
+-                  int page_width = Scr.MyDisplayWidth/Scr.VScale ;
+-                      int page_height = Scr.MyDisplayHeight/Scr.VScale ;
++                  int page_width = /*Scr.MyDisplayWidth/PagerState.vscale_h ;*/
++                              (Scr.MyDisplayWidth * sel_desk->background->width)/PagerState.vscreen_width;
++                      int page_height = /* Scr.MyDisplayHeight/PagerState.vscale_v ;*/
++                              (Scr.MyDisplayHeight * sel_desk->background->height)/PagerState.vscreen_height;
+               int i = 4;
+                   sel_x += (Scr.Vx*page_width)/Scr.MyDisplayWidth ;
+@@ -1500,8 +1500,6 @@
+             if( height > row_height )
+                 row_height = height;
+             
+-            LOCAL_DEBUG_OUT( " :RESIZING: desk = %d, size = %dx%d, all_size = %+d%+d", i, width, height, all_width, all_height );
+-
+             if( ++col >= Config->columns )
+             {
+                 if( all_width < x+width )
+@@ -1513,6 +1511,8 @@
+                 col = 0;
+             }else
+                 x += width;
++            LOCAL_DEBUG_OUT( " :RESIZING: desk = %d, size = %dx%d, all_size = %+d%+d, +x+y = %+d%+d, row_height = %d", i, width, height, all_width, all_height, x, y, row_height );
++
+         }
+         if( all_width < x )
+             all_width = x ;
+@@ -1572,20 +1572,25 @@
+         * and then devide size of the main canvas by this number : */
+         for( col = 0 ; col < Config->columns ; ++col )
+         {
+-            Bool unshaded = False ;
+             unsigned int col_shaded_width = 0 ;
+             int i ;
+             for( i = col ; i < PagerState.desks_num ; i+= Config->columns )
+             {
+                 ASPagerDesk *d = &(PagerState.desks[i]);
++      
+                 if( !get_flags(d->flags, ASP_DeskShaded )  )
+-                    unshaded = True ;
+-                              else if( col_shaded_width < d->title_width )
+-                    col_shaded_width = d->title_width ;
++                              {
++                      ++unshaded_col_count ;
++                                      col_shaded_width = 0;
++                                      break;
++                              }else
++                              {
++                                      int dw = calculate_desk_width(d);
++                                      if( col_shaded_width < dw )
++                      col_shaded_width = dw;
++                              }
+             }
+-            if( unshaded )
+-                ++unshaded_col_count ;
+             shaded_width += col_shaded_width ;
+         }
+@@ -1611,7 +1616,6 @@
+         * and then devide size of the main canvas by this number : */
+         for( row = 0 ; row < Config->rows ; ++row )
+         {
+-            Bool unshaded = False ;
+             unsigned int row_shaded_height = 0 ;
+             int i, max_i = (row+1)*Config->columns ;
+@@ -1622,15 +1626,20 @@
+             {
+                 ASPagerDesk *d = &(PagerState.desks[i]);
+                 if( !get_flags(d->flags, ASP_DeskShaded )  )
+-                    unshaded = True ;
+-                              else if( row_shaded_height < d->title_height )
+-                    row_shaded_height = d->title_height ;
++                              {
++                      ++unshaded_row_count ;
++                                      row_shaded_height = 0;
++                                      break;
++                              }else
++                              {
++                                      int dh = calculate_desk_height(d);
++                                      if( row_shaded_height < dh )
++                          row_shaded_height = dh;
++                              }
+             }
+-            if( unshaded )
+-                ++unshaded_row_count ;
+             shaded_height += row_shaded_height ;
+         }
+-LOCAL_DEBUG_OUT( "unshaded_row_count = %d", unshaded_row_count );
++LOCAL_DEBUG_OUT( "unshaded_row_count = %d, shaded_height = %d, main_height = %d", unshaded_row_count, shaded_height, main_height );
+         if( unshaded_row_count == 0 )
+             return PagerState.desk_height;
+         return (main_height - shaded_height)/unshaded_row_count;
+@@ -2755,9 +2764,10 @@
+                 if( new_desk_width != PagerState.desk_width ||
+                     new_desk_height != PagerState.desk_height )
+                 {
+-                    PagerState.desk_width = new_desk_width ;
+-                    PagerState.desk_height = new_desk_height ;
+-                }
++                    PagerState.desk_width = new_desk_width;
++                    PagerState.desk_height = new_desk_height;
++                      }
++                              
+                 rearrange_pager_desks( True );
+             }else if( changes != 0 )
+             {
This page took 0.154318 seconds and 4 git commands to generate.